我对rails有点陌生。
说我想做类似的事情:
def is_admin?
@admin = User.grab(session[:username]).admin
end
我可以在 ApplicationController 中定义它,但是我必须is_admin?()
在每个后续控制器中调用每个方法。有没有我不知道的解决方法?
我对rails有点陌生。
说我想做类似的事情:
def is_admin?
@admin = User.grab(session[:username]).admin
end
我可以在 ApplicationController 中定义它,但是我必须is_admin?()
在每个后续控制器中调用每个方法。有没有我不知道的解决方法?
:before_filter
在每个控制器的开头使用 a :
before_filter :is_admin
至少你不必为每种方法都这样做。
我不确定调用的确切问题是什么is_admin?
。在 Ruby 中调用方法非常便宜。您可能希望“记忆”返回值以避免每次调用该方法时都调用数据库:
def is_admin?
unless defined?(@is_admin)
@is_admin = User.grab(session[:username]).admin
end
@is_admin
end
由于is_admin?
可以返回虚假值,||=
因此无法正常工作。