2009-07-24 76 views
150

當我有一個特定的操作,我不想檢查真實性標記時,我該如何告訴Rails忽略它?如何忽略Rails中特定操作的真實性標記?

+6

+1,可悲的是,你因爲回答你自己的問題而陷入低潮,這是完全合法的。 – 2009-07-24 14:10:20

+15

呃。我把它放在這裏是因爲我全面搜索了它,並且很難找到答案 - 我認爲它可能會幫助其他人。感謝您投票支持我。 – edebill 2009-07-28 20:09:14

回答

201

對於個人的行動,你可以這樣做:

protect_from_forgery :only => [:update, :delete, :create] 
#or 
protect_from_forgery :except => [:update, :delete, :create] 

對於整個控制器,你可以這樣做:

skip_before_action :verify_authenticity_token 

和Rails 3.x的要求:

skip_before_filter :verify_authenticity_token 
23

Rails4您使用skip_before_actionexceptonly

class UsersController < ApplicationController 
    skip_before_action :verify_authenticity_token, only: [:create] 
    skip_before_action :some_custom_action, except: [:new] 

    def new 
    # code 
    end 

    def create 
    # code 
    end 

    protected 
    def some_custom_action 
    # code 
    end 
end