ruby-on-rails – 如何通过使用带有options_from_collection_for
发布时间:2020-12-17 03:04:09 所属栏目:百科 来源:网络整理
导读:我已经构建了一个这样的表单搜索: %= form_tag({ controller: 'questions',action: 'search_topic' },method: 'get') do % %= select_tag 'search_topic',options_from_collection_for_select(current_user.get_topics,:id,:name) % %= submit_tag "Search"
我已经构建了一个这样的表单搜索:
<%= form_tag({ controller: 'questions',action: 'search_topic' },method: 'get') do %> <%= select_tag 'search_topic',options_from_collection_for_select(current_user.get_topics,:id,:name) %> <%= submit_tag "Search",name: nil,class: 'btn' %> <% end %> 我想搜索从选择框中选择的主题的所有问题,我使用太阳黑子来帮助搜索,所以现在我如何将选择框中的值选择传递给控制器??进行搜索,我使用下面的代码来传递参数[:search] : <%= select_tag 'search_topic',:name),params[:search] %> 但它有错误: undefined method `[]' for nil:NilClass 这是我的控制器: def search_topic @search = Question.search do with(:topic_id,params[:search]) paginate page: 1,per_page: 10 end @questions = @search.results render 'index' end 那么,如何将从表单上的选择框中选择的值传递给控制器??进行搜索? 解决方法
嘿,没有必要通过params [:搜索]. 当单击提交按钮时,Rails会自动生成用于选择的参数. 如果您想将名称参数设置为“搜索”,则将选择“搜索主题”的名称更改为“搜索”. ?如果你想检查params的值,它将如何在params中接收,尝试调试器并检查由此表单生成的params的值. 此外,还有一个快捷方式,尝试在按下提交后要调用的操作中输入错误,并在浏览器页面上读取params.您也可以在下一页用闪光灯打印
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |