这是我敢肯定的偏好问题。
修改的 最近,我在一些VIEW代码的公开示例中注意到了这段代码:
f.collection_select :my_method, AddressTypes.all, :name, :name
或
f.select :my_method, ['Option 1', 'Option 2', 'Option 3']
而不是......
class MyController < ApplicationController
def new
@address_types = AddressTypes.all
end
end
显然,在视图中:
f.collection_select :my_method, @address_types, :name, :name
这只是个人偏好吗?还是有其他原因,我不知道?
答案 0 :(得分:4)
虽然我认为归结为个人偏好,即使Rails guides在视图中使用Model.all
,也不会将其拉回控制器。
我的偏好是,只要我执行的内容超过Model.all
,可能是Model.where(:foo => "bar")
或其他内容,查询就应该抽象回控制器,或者最好是模型。视图不应该对您的模型/数据的逻辑负责,它应该只关注它的呈现。