I have a rails app with articles and author model. If I have an author and a post and want to indicate that the author should be the owner of the article, or that the article belongs to the author, what ist the best practice to do so? In particular:
Does it make a difference if I set
my_article.author_id = author_one.id
or If I do
author_one << my_article
The associations that are used are
And, by the way, what would be the best way to look it up if similar questions appear?
There is not difference between the 3 following:
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
To set the owner of a particular post, the most common and readable way would be:
post.author = author
post.save
OR shorter version:
post.update_attributes(author_id: author.id) # call an implicit save
I'm assuming you mean author_one.articles << my_article
rather than just author_one << my_article
One difference between the two is that
author_one.articles << my_article
will save the change to the database immediately. i.e. it will either create the record for my_article
if it has not been saved before or it will update the existing record to have author_id
= author_one.id
whereas
my_article.author = author_one
or
my_article.author_id = author_one.id
will not be persisted until you do a my_article.save
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With