我有一个过滤搜索表单:

<%= 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/

10-13 04:26