我在使用user_ids
添加 Has Many Through 关联时遇到问题。
我的沟通模式如下:
class communication
has_many :recipients
has_many :users, :through => :recipients
end
在我对通信控制器的创建操作中,我尝试手动将user_ids
添加到通信对象中,如下所示:
@communication = new Communications(params[:communication])
@communication.user_ids << id
logger.debug @communication.user_ids # is empty
我无法理解为什么@communication.user_ids
数组为空,即使我像这样执行硬编码ID:
@communication = new Communications(params[:communication])
@communication.user_ids << 1
logger.debug @communication.user_ids # is still empty!
我仍然得到一个空的@communication.user_ids
数组。
我的方法错过了什么?有任何提示让这个工作?
提前致谢!
答案 0 :(得分:2)
由于它是has_many :through
,您可能需要提供完整的对象,以便可以顺利创建关系。试试这个:
@communication = Communication.new params[:communication]
@communication.users << User.find( 1 )
@communication.user_ids # should be [ 1 ]