我有一个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。
为什么呢?
我该怎么办?
答案 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? 您需要在表单提交的操作中使用相同的查询。 (因此,如果新提交创建,您需要在创建操作中找到艺术家。)