我正在尝试创建一个创建Ranking类实例的字段。它有一个注释字段已设置params[:ranking][:comment]
但现在我想添加一个下拉列表,显示如下内容:
1:可怕,2:可怜,3:平庸,4:好,5:很棒
我希望这些将params [:ranking] [:score]设置为1-5,这样在我的create方法中我可以这样做:
@ranking = Ranking.new( #....
:score => params[:ranking][:score])
我的表单现在看起来像这样:
<%= form_for([@essay, @ranking]) do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<div classs="field">
<%= f.text_area :comment %>
</div>
<div classs="field">
<%= #something here!%>
</div>
<div class="actions">
<%= f.submit "Submit" %>
</div>
<% end %>
我知道我需要使用collection_select
,但我无法使其正常运行。
答案 0 :(得分:58)
您应该能够使用常规的select
帮助程序:
f.select :score, [['horrible', 1], ['poor', 2], ['mediocre', 3], ['good', 4], ['great', 5]]
如果您有分数模型,则可以使用collection_select
。类似的东西:
f.collection_select :score_id, Score.all, :id, :name
的API文档