Rails 如何在 application_controller 里面指定某个方法只在特定得控制器下执行?

Zoker · 2014年05月09日 · 最后由 liwei78 回复于 2014年05月09日 · 2300 次阅读

application_controller里面得一个函数

def books
……
end

我想这个方法只有在响应books_controller的时候执行,如何做判断?

books_controllerbefore_filter就行了吧?

bdfore_action :books, if: controller_name == "books_controller"

before_filter :on_book_controller

def on_book_controller if request.fullpath.startWith('/book') //do something end end

#2 楼 @cassiuschen many thx , controller_name is what I want!

不是应该把这个方法放到 books_controller 内么

#6 楼 @hozaka 看起来这个意见更好啊

#6 楼 @hozaka #7 楼 @48hour 谢谢回复,主要是我要判断一个动作通过变量去条件匹配多个控制器,例子举的有点不好,见谅。

controller_name = "xxx" 和 controller.action = "yyy"

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