Say, for example, that I have 2 resources Author
and Book
, where Author has_many Books
and Book belongs_to Author
.
This means that by doing the following:
# routes.rb
resources :books
resources :authors do
resources :books
end
I will have two routes that point to BooksController#index
: 1) GET /books
and 2) GET /authors/:id/books
.
Consider the scenario where we don't care about all the books, only the list of books from a given author (effectively putting route #1 out of use).
This leaves BooksController#index
with logic that goes something like:
# BooksController.rb
def index
@books = Book.where(author: author)
render json: @books
end
However, the Author
scoping is leaving me quite uncomfortable seeing as it is a general BooksController
, where the other CRUD methods have nothing to do with Authors
. Should something like the above #index method be in a separate, namespaced controller like Author::BooksController
?
Aucun commentaire:
Enregistrer un commentaire