2011-02-07 49 views
1

任何人都可以告诉我这个代码有什么问题吗?无法使用select_tag将符号转换为整数

我得到不能转换成符号整数 提取的源(左右线#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 %> 
+1

您是否确定意味着'select_tag'不只是'select'?我有文档表明,select_tag期望一个包含选项标签的字符串,而不是一组选项。 select()另一方面看起来做你想要的。回来,如果你仍然有麻烦! – 2011-02-07 13:48:50

回答

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]}) 

你要注意,这是不使用* _tag方法,当你在一个form_for块包裹表单字段的最佳实践。这是使用form_for的整点,你在迭代器中携带@song_request对象:)

+0

完美就是我所需要的 – 2011-02-11 07:46:05

2

collection_select会做你想要什么,并读取要好得多:

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

非常感谢,我不得不交换姓名和身份证号码 – 2011-02-11 07:45:39

相关问题