In my previous learning projects I always used a single controller, but now I wonder if that is good practice or even always possible.
In all RESTful Rails tutorials the controllers have a show
, an edit
and an index
view. If an authorized user is logged on, the edit
view becomes available and the index
view shows additional data manipulation controls, like a delete button or a link to the edit
view.
Now I have a Rails application which falls exactly into this pattern, but the index
view is not reusable:
- The normal user sees a flashy index page with lots of pictures, complex layout, no Javascript requirement, ...
- The Admin user index has a completly different minimalistic design, jQuery table and lots of additional data, ...
Now I'm not sure how to handle this case. I can think of the following:
- Single controller, single view: The view is split into two large blocks/partials using an
if
statement. - Single controller, two views:
index
andindex_admin
. - Two different controllers:
BookController
andBookAdminController
None of these solutions seems perfect, but for now I'm inclined to use the 3rd option.
What's the preferred way to do this?