假设我有一个名为Books(和相应的Book模型)的控制器,以及一个名为Users(和相应的User模型)的控制器。每个控制器都有标准的CRUD操作,它们也可以作为我网站API的载体。
我网站上的大多数网页都很容易融入此框架。例如,查看书籍。或者查看您的用户帐户。或者修改您的用户帐户。等
但是,假设我有一个独特的索引:我想显示一个用户列表和一个书籍列表。这引出了一些问题:
答案 0 :(得分:1)
您可以在模型中使用范围(谷歌搜索它)来保持您的控制器精益。根据您要显示的内容,您可以创建新方法和视图。假设您有一个用户仪表板,列出您的书籍以及处于单独模型中的作者。
您可以在用户控制器中创建一个名为def dashboard的新方法,因为它与您的用户有关。
def dashboard
end
您将在模型中创建一个辅助方法来确定特定查询的范围。请记住还要在路线文件中添加正确的路线。
我希望这会有所帮助
答案 1 :(得分:0)
无论你想要什么。
1)我可能会写另一个控制器,虽然它最终可能是一个品味问题,它可能会随着应用程序的上下文而改变。
2)我会从两个模型中获取数据。没有MVC规则映射控制器和模型一对一。
我不太确定“查询”是什么意思,但你可以将它们放在模型方法(或范围)中以避免干扰。当然,人们很想在控制器中进行简单的查询,因为ActiveRecord将它们封装为方法(例如User.find(n))