"123-456", "category_eq"=>"", "created_at_gteq"=>"", "created_at_lt-6ren">
gpt4 book ai didi

ruby-on-rails - 从参数中剥离破折号 - Rails

转载 作者:太空宇宙 更新时间:2023-11-03 16:14:35 26 4
gpt4 key购买 nike

如何从参数中去除字符?如果我的参数是这样的:

<ActionController::Parameters {"utf8"=>"✓", "q"=><ActionController::Parameters {"search_fields_cont_any"=>"123-456", "category_eq"=>"", "created_at_gteq"=>"", "created_at_lteq"=>""} permitted: false>, "controller"=>"submissions", "action"=>"index", "page"=>nil, "per_page"=>nil} permitted: false>

params[:q][:search_fields_cont_any] => "123-456"

如何修改参数使其看起来像这样:

params[:q][:search_fields_cont_any] => "123456"

Controller

@q = Submission.submissions_for(user: current_user).ransack(filter_params(params[:q]))

私有(private)方法

def filter_params(params)
params.require(:q).permit(:search_fields_cont_any)
end

理想情况下,我会修改私有(private)方法中的参数。我该怎么做?

最佳答案

怎么样:

def filter_params(params)
params.require(:q).permit(:search_fields_cont_any)[:search_fields_cont_any].gsub!('-','')
end

在控制台中:

params = ActionController::Parameters.new(q: {search_fields_cont_any: 'abc-def'})
=> {"q"=>{"search_fields_cont_any"=>"abc-def"}}
params.require(:q).permit(:search_fields_cont_any)[:search_fields_cont_any].gsub!('-','')
=> "abcdef"

或者,如 mudasobwa 所说(更好 - 为您节省 1 个字符):

def filter_params(params)
params.require(:q).permit(:search_fields_cont_any)[:search_fields_cont_any].delete!('-')
end

同样,在控制台中:

params = ActionController::Parameters.new(q: {search_fields_cont_any: 'abc-def'})
=> {"q"=>{"search_fields_cont_any"=>"abc-def"}}
params.require(:q).permit(:search_fields_cont_any)[:search_fields_cont_any].delete!('-')
=> "abcdef"

关于ruby-on-rails - 从参数中剥离破折号 - Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49779560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com