新手问题 如何讓不同 controller 做一樣的事情

xdxie · 2012年12月16日 · 最后由 xdxie 回复于 2012年12月16日 · 2009 次阅读

請問各位大大

如果說 controller 底下的不同 action 要做一樣的事情我們用 before_filter :work,:only=>[:a1,:a2]

那麼相對而言不同的 controller 底下我要做一樣的事情該如何實現? 除了改 application_controller.rb 我想聽聽有沒有其它常做的方法?

如果改 application_controller.rb 該如何使用類似 only 限制哪些 controller 做?

可以用继承。

在 application_controller.rb 里面定义这个 method

# file application_controller.rb

private

def work
  ....
end

然后在你每个具体 controller 里面用它

# file xxxxxx_controller.rb
before_filter :work, :only => [:a1, :a2]
# file yyyyyyyy_controller.rb
before_filter :work, :only => [:b1, :b2]

我通常的做法是 让类似的 controller 都继承一个 base.

感謝各位的解答 一種用 before_filter 解,不然就用繼承,繼承有沒有範例 sample

需要 登录 后方可回复, 如果你还没有账号请 注册新账号