rails collection_select错误' undefined method show'

时间:2014-05-01 03:15:07

标签: ruby-on-rails

我要做的是创建一个人口统计数据下拉列表。我对调用show方法并不感兴趣,它只是我将要编写的方法的占位符。 我遇到的问题是,Rails不承认show方法存在。

人口统计数据视图:

<%= collection_select( :demographic, :id, @demographics, :demographic, :show) %>

demographics_controller:

   def show
     @races = Race.all
   end 

我做错了什么?

2 个答案:

答案 0 :(得分:1)

the documentation开始,这里是方法定义:

collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})

我们假设这是一个由已声明@demographics实例变量的控制器提供的表单,并且您希望使用以下结构创建selectoption标记:

<select name="demographic[demographic_id]">
  <option value="">Please select</option>
  <option value="1" selected="selected">Foo</option>
  <option value="2">Bar</option>
</select>

此外,您的@demographics实例变量包含具有idname属性的对象。那么这些将是你的方法参数:

  • object = :demographic
  • method = :demographic_id
  • collection = @demographics
  • value_method = :id
  • text_method = :name

你的collection_select看起来像这样:

collection_select(:demographic, :demographic_id, @demographics, :id, :name)

答案 1 :(得分:0)

愚蠢的我。 '未知方法'因为方法必须在模型中而不是控制器。 哇,我再也不会犯这个错误了。