【问题标题】:rails form f.select errorrails form f.select 错误
【发布时间】:2012-12-23 22:49:26
【问题描述】:

我想使用meta_search gem。我认为这是:

<%= f.select :project_type_id_in, 
   raw("<option value=''>-- Proje Types --</option>" + 
   options_from_collection_for_select(ProjectType.all, :id, :name, 
   params[:search][:project_type_id_in].to_i )) %>

但是当我调用控制器时,我得到了这个错误:

You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.[]

【问题讨论】:

    标签: ruby-on-rails forms


    【解决方案1】:

    params[:search] 似乎是nil,可能是因为尚未指定搜索选项。您可以确保在页面加载之前对其进行初始化以避免这种情况。或者你可以这样修复它:

    <%= f.select :project_type_id_in, 
          raw("<option value=''>-- Proje Types --</option>" + 
          options_from_collection_for_select(ProjectType.all, :id, :name, 
          params[:search].present? ? params[:search][:project_type_id_in].to_i : nil)) %>
    

    或者你可以使用andand gem 来做同样的事情,更简洁:

    <%= f.select :project_type_id_in, 
          raw("<option value=''>-- Proje Types --</option>" + 
          options_from_collection_for_select(ProjectType.all, :id, :name, 
          params[:search]&&.[:project_type_id_in].to_i)) %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-08
      • 2014-07-22
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多