在与Rails的has_and_belongs_to_many关联中添加对象

时间:2010-10-07 08:35:08

标签: ruby-on-rails has-and-belongs-to-many

我在用户之间有这个简单的has_and_belongs_to_many关联,这非常有效。

但是,我想直接在Create方法中添加所有创建的新用户和第一个用户(是的,就像MySpace的Tom一样)之间的友谊关系:

def create
  @user = User.new(params[:user])
  if @user.save
    @user.friends << User.find(1)
    redirect_to root_path
  else
    render :action => :new
  end
end

我不明白为什么这不起作用。没有错误,没有,它只是没有将第一个用户添加到新用户的朋友。

(有关信息,我使用的是Rails 2.3.4)

我该怎么办?

凯文

2 个答案:

答案 0 :(得分:2)

首先,您可以启动脚本/控制台并检查您的关联是否在控制台中正常工作。 其次,您必须安排代码,以便用户和朋友之间的关联在save命令之前。

答案 1 :(得分:2)

您必须在保存用户之前添加好友,或者在添加好朋友后再次低效地保存用户。