传递给before_filter方法调用的参数?

时间:2014-05-30 17:58:41

标签: ruby-on-rails ruby-on-rails-4

在我的application_contorller我有方法:

def authorize(message = "Please Login")
    if current_user.nil?    
        redirect_to :root, alert: message 
        return
    end
end

我希望能够在需要时添加自定义消息,以便我可以从before_filter中的许多不同控制器调用此方法。

例如在另一个控制器中我有:

before_filter :authorize, except: [:index,:show]

如何将message参数传递到:authorize中的before_filter方法调用以显示不同的消息?

1 个答案:

答案 0 :(得分:9)

使用符号定义参数时,无法将参数传递给请求回调。您可以改为使用块:

before_filter(only: [:index, :show]) { authorize('You forgot to login') }