Rails select和collection select helper

时间:2011-08-02 14:33:35

标签: ruby-on-rails ruby-on-rails-3

这是我敢肯定的偏好问题。

修改的 最近,我在一些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

这只是个人偏好吗?还是有其他原因,我不知道?

1 个答案:

答案 0 :(得分:4)

虽然我认为归结为个人偏好,即使Rails guides在视图中使用Model.all,也不会将其拉回控制器。

我的偏好是,只要我执行的内容超过Model.all,可能是Model.where(:foo => "bar")或其他内容,查询就应该抽象回控制器,或者最好是模型。视图不应该对您的模型/数据的逻辑负责,它应该只关注它的呈现。