我有3个型号:
...
COMMIT TRANSACTION
END TRANSACTION
BEGIN TRANSACTION;
...
包含属性user.rb
,id
name
包含属性article.rb
,id
文章title
belongs_to: user_page
,user_page.rb
,user_id
属性的 article_id
read_article
has_many: users
创建has_many: articles
时如何为所有用户传递read_article:false
:
示例:数据库中有32个用户。我们创建文章#1。
然后在article
表格中创建:来自user_page
user_id:1 ... user_id:32
和article_id:1
创建文章时控制器中应该包含什么内容?:
read_article:false
答案 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
希望它有所帮助!