Ruby on Rails Has_many通过数组问题

时间:2009-09-21 04:36:42

标签: ruby-on-rails arrays has-many-through

我在使用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数组。

我的方法错过了什么?有任何提示让这个工作?

提前致谢!

1 个答案:

答案 0 :(得分:2)

由于它是has_many :through,您可能需要提供完整的对象,以便可以顺利创建关系。试试这个:

@communication = Communication.new params[:communication]
@communication.users << User.find( 1 )
@communication.user_ids  # should be [ 1 ]