如何在Rails ActiveRecord中正确分配has_many/belongs_to关系?

Yo *_*dke 8 ruby activerecord ruby-on-rails

我有一个带有文章和作者模型的rails应用程序.如果我有作者和帖子并希望表明作者应该是文章的所有者,或者文章属于作者,那么最佳做法是什么?特别是:

如果我设置它会有所作为吗?

my_article.author_id = author_one.id
Run Code Online (Sandbox Code Playgroud)

或者如果我这样做

author_one << my_article
Run Code Online (Sandbox Code Playgroud)

使用的关联是

  • 作者has_many文章
  • 文章所属_to作者

顺便说一下,如果出现类似的问题,最好的方法是什么呢?

MrY*_*iji 14

以下3个没有区别:

my_article.author_id = author_one.id
my_article.save
# same as
my_article.author = author_one
my_article.save
# same as
author_one.articles << my_article
Run Code Online (Sandbox Code Playgroud)

要设置特定帖子的所有者,最常见和可读的方式是:

post.author = author
post.save
Run Code Online (Sandbox Code Playgroud)

较短的版本:

post.update_attributes(author_id: author.id) # call an implicit save
Run Code Online (Sandbox Code Playgroud)