После прочтения я думаю, что добавление нового действия RESTful (вариант № 3 в моем вопросе) - это путь.Подробности здесь: http://guides.rubyonrails.org/routing.html#adding-more-restful-actions
Я обновил мой route.rb следующим образом:
resources :products do
get 'detailed', :on => :collection
end
И добавил соответствующее действие к моему ProductsController
:
def detailed
# full_details is a scope that eager-loads all the associations
respond_with Product.full_details
end
И затем, конечно, добавили detailed.html.haml
представление, которое показывает продукты в подробном виде, который я хотел.Я могу связать это с detailed_products_path
, который генерирует URL /products/detailed
.
После реализации этого я уверен, что это был правильный путь.Как говорится в руководствах RoR, если я выполнял много пользовательских действий, это, вероятно, означает, что у меня должен быть другой контроллер, но только одно дополнительное действие, подобное этому, легко реализовать, оно СУХОЕ и работает хорошо.Это похоже на путь рельсов.: -)