我要做的是创建一个人口统计数据下拉列表。我对调用show方法并不感兴趣,它只是我将要编写的方法的占位符。 我遇到的问题是,Rails不承认show方法存在。
人口统计数据视图:
<%= collection_select( :demographic, :id, @demographics, :demographic, :show) %>
demographics_controller:
def show
@races = Race.all
end
我做错了什么?
答案 0 :(得分:1)
从the documentation开始,这里是方法定义:
collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})
我们假设这是一个由已声明@demographics
实例变量的控制器提供的表单,并且您希望使用以下结构创建select
和option
标记:
<select name="demographic[demographic_id]">
<option value="">Please select</option>
<option value="1" selected="selected">Foo</option>
<option value="2">Bar</option>
</select>
此外,您的@demographics
实例变量包含具有id
和name
属性的对象。那么这些将是你的方法参数:
:demographic
:demographic_id
@demographics
:id
:name
你的collection_select
看起来像这样:
collection_select(:demographic, :demographic_id, @demographics, :id, :name)
答案 1 :(得分:0)
愚蠢的我。 '未知方法'因为方法必须在模型中而不是控制器。 哇,我再也不会犯这个错误了。