如何将创建数据从一个模型传递到另一个模型

时间:2015-07-07 07:57:54

标签: ruby-on-rails

我有3个型号:

... COMMIT TRANSACTION END TRANSACTION BEGIN TRANSACTION; ... 包含属性user.rbid

name包含属性article.rbid

文章title

带有belongs_to: user_pageuser_page.rbuser_id属性的

article_id read_article has_many: users

创建has_many: articles时如何为所有用户传递read_article:false

示例:数据库中有32个用户。我们创建文章#1。

然后在article表格中创建:来自user_page user_id:1 ... user_id:32article_id:1

创建文章时控制器中应该包含什么内容?:

read_article:false

1 个答案:

答案 0 :(得分:0)

使用find_each

def create
 @article = Article.create(article_params) # Use create to have @article.id
 UserPage.find_each do |user_page|
  user_page.article_id = @article.id
  user_page.read_article = false
  user_page.save!
 end
end

如果您使用Article.new代替Article.create,则不会@article.id分配给您的UserPage模型。此代码假定您已为每个使用UserPage的用户创建了user_id模型。

<强>更新

如果您没有为每个用户创建UserPage模型:

def create
 @article = Article.create(article_params) # Use create to have @article.id
 User.find_each do |user|
  UserPage.create(user_id: user.id, article_id: @article.id, read_article: false)
 end
end

希望它有所帮助!