如何从用户数组中创建多对多的关系

时间:2013-02-08 13:09:24

标签: ruby-on-rails many-to-many relationships

我在@users中获得了几个用户对象。我在params [:task]中有一个任务对象 现在我想保存taskobject并在所有@users和该任务之间添加关系......

@users = User.find(session[:user_id], params[:user_task])
@task = @users.tasks.create(params[:task])
@task.owner_id = session[:user_id]      

if @task.save
  redirect_to task_path(@task)

我得到的是一个错误,如:Array的未定义方法`tasks'。 我该怎么做?

1 个答案:

答案 0 :(得分:1)

您需要先初始化新任务,分配其所有者并保存,如果成功,则可以创建与所有用户的关联。

像这样:

@task = Task.new(params[:task])
@task.owner_id = session[:user_id]
if @task.save
  @users = User.find(session[:user_id], params[:user_task])
  @users.each { |user| user.tasks << @task }