在控制器中放置太多before_filter是件坏事吗?

时间:2011-11-01 16:00:15

标签: ruby-on-rails

这是我在Rails 3.1.1中的代码:

class ShopsController < ApplicationController
  before_filter :require_user, :only => [:new, :edit, :update, :create]
  before_filter :fetch_shop, :only => [:show, :edit, :update, :destroy, :rate]
  before_filter :fetch_default_shop_type, :only => [:index, :new, :create]
  before_filter :fetch_default_shop_subtype, :only => [:new, :update, :edit]
  ...
end

我只是想练习烘干机的方法。虽然before_filter中的每个方法除了传递一些常见变量之外没有做太多工作,但我不知道这是否会使控制器有点紧张。减少它是否更好,只需硬编码到单个def中,而不是在简单变量传递上使用before_filter

感谢。

1 个答案:

答案 0 :(得分:0)

  1. 最好将一些过滤器移到模型中。
  2. 缓存erb的方法和块然后过滤器会更容易。