当api_key存在时,skip_before_filter

Cyr*_*rus 6 api ruby-on-rails csrf ruby-on-rails-3

我正在尝试为我的rails应用程序构建一个api.

我想在过滤之前跳过csrf,当非get请求中存在有效的api_key时.

我试过(一旦我可以使条件过滤器工作,我将验证api_key)

(skip_before_filter :verify_authenticity_token) if params[:api_key].present?
Run Code Online (Sandbox Code Playgroud)

但这不起作用......

有任何想法吗?

Yur*_*hov 7

我不认为这可以工作,因为如果在创建控制器类的过程中评估表达式,那么params[:api_key].present?当时是假的...你可以试试

skip_before_filter :verify_authenticity_token, :if =>lambda{ params[:api_key].present?}