Ruby on rails Rails独立控制器,适用于多种型号的页面?什么是最好的?
我有一个“dashboard”类型的页面,显示来自许多不同模型(一个父模型和许多关联的子模型)的记录,并使用我当前保存在父控制器中的逻辑。我是rails新手,不知道是否最好创建一个单独的仪表板控制器,或者只保留父控制器以添加/编辑/索引/销毁父记录 这种类型的页面是否有最佳实践Ruby on rails Rails独立控制器,适用于多种型号的页面?什么是最好的?,ruby-on-rails,controller,Ruby On Rails,Controller,我有一个“dashboard”类型的页面,显示来自许多不同模型(一个父模型和许多关联的子模型)的记录,并使用我当前保存在父控制器中的逻辑。我是rails新手,不知道是否最好创建一个单独的仪表板控制器,或者只保留父控制器以添加/编辑/索引/销毁父记录 这种类型的页面是否有最佳实践 我使用的是Rails 4…如果这很重要的话。你是对的,这更像是一个RESTful困境,与任何特定的框架都没有关系。这取决于父模型和子模型的角色,以及仪表板是否“公开”任何其他资源。为了简单起见,我将假设父模型是作者,子模
我使用的是Rails 4…如果这很重要的话。你是对的,这更像是一个RESTful困境,与任何特定的框架都没有关系。这取决于父模型和子模型的角色,以及仪表板是否“公开”任何其他资源。为了简单起见,我将假设父模型是作者,子模型是一本书
/authors/{author\u id}/books
(以及/dashboard
的别名,如果需要):
然后,逻辑属于控制器
:
class BooksController < ApplicationController
def index
if params[:author_id]
@author = Author.find(params[:author_id])
@books = @author.books
return render '/books/author_index'
else
# Code for simple top level RESTful resource. E.g '/books'
# ...
@books = Book.all
return render 'index'
end
end
end
class BooksController
然而,如果你的仪表板更宽,触摸多个域,你可以考虑仪表板本身作为一个资源(例如它自己的代码< DashboardController >代码>)。仪表板上的所有资源都与父级相关。
class BooksController < ApplicationController
def index
if params[:author_id]
@author = Author.find(params[:author_id])
@books = @author.books
return render '/books/author_index'
else
# Code for simple top level RESTful resource. E.g '/books'
# ...
@books = Book.all
return render 'index'
end
end
end