表单中的ID

时间:2010-02-23 22:10:28

标签: ruby-on-rails forms

我有一个has_and_belongs_to_many艺术家的活动模型

class Event < ActiveRecord::Base
 has_and_belongs_to_many :humans, :foreign_key => 'event_id', :association_foreign_key => 'human_id'
end

在事件插入的表单中,我为艺术家ID设置了一个隐藏字段:

 <%= event_form.text_field :artist_ids %>

如果我手动插入值“8,9,10”(与2行人类相关的ID)并且我提交表格,在控制器中我只获得8。

为什么呢?

我该怎么办?

2 个答案:

答案 0 :(得分:2)

将字符串"8,9,10"分配给artist_ids时,它会转换为整数值:

>> a.artist_ids = '1,2,3'
=> "1,2,3"
>> a.artist_ids
=> [1]

在将其传递给模型之前,您需要将其拆分:

>> a.artist_ids = '1,2,3'.split(',')
=> ["1", "2", "3"]
>> a.artist_ids
=> [1, 2, 3]

答案 1 :(得分:0)

在“新”动作中,您如何找到artist_ids? 您需要在表单提交的操作中使用相同的查询。 (因此,如果新提交创建,您需要在创建操作中找到艺术家。)