使用select_tag无法将符号转换为整数

时间:2011-02-07 13:25:49

标签: ruby-on-rails

有人可以告诉我这段代码有什么问题吗?

我得到无法将符号转换为整数 提取的来源(第5行):

3: <% form_for @song_request do |f| %>
4: <p>Please select the event you are attending:</p>
5: <%= select_tag('song_requests', 'event_id', Event.all.collect {|e| [e.name, e.id ] } ) %>
6: <% end %>

2 个答案:

答案 0 :(得分:2)

collection_select会做你想要的并且读得更好:

<%= f.collection_select :event_id, Event.all, :id, :name %>

答案 1 :(得分:1)

好的我同意idlefingers你必须在这里使用collection_select方法(虽然它必须阅读<%= f.collection_select :event_id, Event.all, :name, :id %>)但你也可以选择使用select方法

<%= f.select :event_id, options_for_select(Event.all.collect{|e| [e.name,e.id]})

您必须注意,将表单字段包装在form_for块中时,最好不要使用* _tag方法。这就是使用form_for在迭代器中携带对象@song_request的全部意义:)