Tôi có một ứng dụng đường ray mà tôi đang lên kế hoạch nâng cấp lên đường ray 5. Tôi đang sử dụng devise (v4.2.0) cùng với đường ray (v5.0.0). Như đã đề cập trong devise tập tin README.md, tôi đã cố gắng di chuyển protect_from_forgery trên before_filter nhưng vẫn khi tôi đang cố gắng để đăng nhập hoặc cập nhật lỗi của tôi, tôi nhận được một lỗi ActionController::InvalidAuthenticityToken
Rails 5 ActionController :: InvalidAuthenticityToken lỗi
My Application Controller
là
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
Và tôi khác BugController
là
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
Tôi đã thử đặt 'skip_before_filter: verify_authenticity_token' trong bộ điều khiển lỗi nhưng vẫn không hoạt động. – HSD
chỉ cho tôi nơi bạn đặt nó – Boltz0r
Trong 'Bộ điều khiển lỗi'' protect_from_forgery prepend: true, với:: exception before_action: authenticate_user! before_action: set_bug, chỉ: [: show,: edit,: update] ' – HSD