【问题标题】:how to create relationships many to many from array of users如何从用户数组中创建多对多关系
【发布时间】:2013-02-08 13:09:23
【问题描述】:

我在@users 中获得了几个用户对象。我在 params[:task] 中有一个任务对象 现在我想保存任务对象并在所有@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)

我得到的只是一个错误,例如:数组的未定义方法“任务”。 我该怎么做?

【问题讨论】:

  • 目前还不清楚您要在这里做什么。你是如何获得用户的? params[:user_task] 中有什么内容?
  • 我从 user_ids 获取它们。首先来自会话中的登录用户,也来自 params[:user_task],这应该是复选框中的一些用户 ID。
  • 1.我想创建新的任务 params[:task] 2. 并与 @users 中的所有用户添加到该任务的关系
  • 你能发布你的模型关联代码吗?即has_manybelongs_to 等?

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


【解决方案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 }

【讨论】:

  • 现在很完美:)!谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-14
  • 2019-10-11
  • 2021-03-12
  • 1970-01-01
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多