我正在开发一个ruby on rails项目,我有一个非常简单的疑问,在视图中我有这样的Food.all
,我应该在控制器内执行此查询并将其分配给实例变量或者如果我将这一行放在视图中就可以了。
有什么利弊?
我不得不说我没有做任何其他信息。
Food.all
它实际上是视图中的一个选择。
感谢。
答案 0 :(得分:1)
默认方法是在控制器中定义变量:
@foods = Food.all
虽然在视图中执行查询有时是可以接受的(在我看来)。它有一些好处:缓存会更容易,而且您编写的代码更少,特别是如果您在项目的许多地方使用此代码。但是这段代码不太灵活,如果你需要更复杂的东西,你需要移动这个查询。 所以明智地思考和选择:)
答案 1 :(得分:0)
视图应该只显示数据。绝对更好的是将它分配给控制器中的变量并从那里使用。
请参阅:How MVC works。一般来说,视图应与控制器通信,控制器与模型通信。