我有一个过滤搜索表单:
<%= form_tag admin_publications_path, method: "get", id: "filter", class: "filter" do %>
<%= label_tag "Category" %>
<%= select "publication", "category", options_for_select(options_for_categories, selected: params[:publication][:category]), {prompt: 'All'}, onchange: "$('#filter').submit();" %>
<% end %>
只要有params[:publication][:category]可用,这就可以正常工作。
但是,如果参数不可用,例如当视图在没有以前搜索的情况下呈现时,我会得到错误:
undefined method `[]' for nil:NilClass
有没有办法从视图中检查参数是否存在?
谢谢你的帮助,
安东尼
最佳答案
视图不应该知道params
。
在控制器(或视图助手)中创建变量`if params[:publication] @selected = params[:publication][:category]end
或者一行一行的@selected = params[:publication].try(:[], :category)
关于ruby-on-rails - 如何查看视野中的存在参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25177016/