I think that the key point to answer your question is determined by your specifications: "... popular authors that the user can choose as related to this book."
This, in addition to the fact that you bring all the authors, makes me ask: What are the criteria that you will use to determine which authors are popular?
I doubt it, but if it depends on adding the current book or some previous fields entered by the user, it makes sense to make a decision B and write the logic inside the book model.
Most likely, solution A is correct, because your case needs code to find popular authors only in the action of adding a book controller. This "feature" is only an add action, so it must be encoded inside the "Author" model to retrieve the list and called by the "add" action when preparing the "empty" form to transfer the list to the view.
In addition, it makes sense to write some kind of similar code inside the book model, if you want, for example, display all other books from the same author.
In this case, you apparently need popular authors (who have more books?), So this is clearly an “extra feature” of the author’s model (which you can even code as a custom search method).
In any case, according to others, there is no need to reload the Author model, since it is automatically loaded through its link to Books.
savedario
source share