我正在根据这个 Railscasts episode在应用程序中实施授权。
在其中一个实例方法中,Ryan Bates 正在使用 .call 方法,我不明白它到底在做什么。这是整个模型的代码。这是特定的方法:
def allow?(controller, action, resource = nil)
allowed = @allow_all || @allowed_actions[[controller.to_s, action.to_s]]
allowed && (allowed == true || resource && allowed.call(resource))
end
资源参数是一个实例对象,局部变量allowed
应该是一个布尔值。