Rails 5 ActionController :: InvalidAuthenticityToken错误 [英] Rails 5 ActionController::InvalidAuthenticityToken error

查看:147
本文介绍了Rails 5 ActionController :: InvalidAuthenticityToken错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个rails计划升级到rails 5.我正在使用devise(v4.2.0)以及rails(v5.0.0)。如在设计的README.md文件中所建议的,我尝试移动before_filter上面的protect_from_forgery,但是当我尝试登录或更新我的错误时,我收到错误 ActionController :: InvalidAuthenticityToken



我的应用程序控制器

  class ApplicationController< ActionController :: Base 
protect_from_forgery with::exception,prepend:true
before_action:configure_permitted_pa​​rameters,if::devise_controller?

protected

def configure_permitted_pa​​rameters
devise_parameter_sanitizer.permit(:sign_up,keys:[:name])
devise_parameter_sanitizer.permit(:account_update,keys: [:name])
end

end

而我的其他 BugController

  class BugsController< ApplicationController 
protect_from_forgery prepend:true,with::exception
before_action:authenticate_user!
before_action:set_bug,only:[:show,:edit,,update]

def update
respond_to do | format |
if @ bug.update(bug_params)
format.html {redirect_to @bug,notice:'Bug was successfully updated。'}
format.json {render:show,status::ok ,位置:@bug}
else
format.html {render:edit}
format.json {render json:@ bug.errors,status::unprocessable_entity}
end
end
end

private
def bug_params
params.require(:bug).permit(:product,:component,:title,,description, :status_id,:created_by_id,:assigned_to_id
end


end


解决方案

  class BugsController< ApplicationController 
skip_before_filter:verify_authenticity_token
protect_from_forgery prepend:true,with::exception
before_action:authenticate_user!
before_action:set_bug,only:[:show,:edit,,update]
end

喜欢这个


I have a rails application which I am planning to upgrade to rails 5. I am using devise(v4.2.0) along with rails(v5.0.0). As suggested in devise README.md file, I tried moving the protect_from_forgery above the before_filter but still when I am trying to login or update my bug I get an error ActionController::InvalidAuthenticityToken

My Application Controller is

class ApplicationController < ActionController::Base
 protect_from_forgery with: :exception, prepend: true
 before_action :configure_permitted_parameters, if: :devise_controller?

  protected

   def configure_permitted_parameters
     devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
     devise_parameter_sanitizer.permit(:account_update, keys: [:name])
   end

end

And my other BugController is

class BugsController < ApplicationController
  protect_from_forgery prepend: true, with: :exception
  before_action :authenticate_user!
  before_action :set_bug, only: [:show, :edit, :update]

    def update
      respond_to do |format|
      if @bug.update(bug_params)
        format.html { redirect_to @bug, notice: 'Bug was successfully updated.' }
        format.json { render :show, status: :ok, location: @bug }
     else
        format.html { render :edit }
        format.json { render json: @bug.errors, status: :unprocessable_entity }
     end
     end
   end

private
def bug_params
  params.require(:bug).permit(:product, :component, :title, :description, :status_id, :created_by_id, :assigned_to_id)
end


end

解决方案

class BugsController < ApplicationController
skip_before_filter :verify_authenticity_token
protect_from_forgery prepend: true, with: :exception
before_action :authenticate_user!
before_action :set_bug, only: [:show, :edit, :update]
end

Like This

这篇关于Rails 5 ActionController :: InvalidAuthenticityToken错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆