在我的观看中,我有一个删除操作的链接,如下所示:
<%= link_to 'Destroy', powersaving, :method => :delete, :data => { :confirm => 'Are you sure?' } %>
在我的控制器中,我有before_filter
before_filter :authenticate_user!, :only => [:index, :show, :show_details, :destroy]
我也尝试过这样:
before_filter :authenticate_user!, :except => [:new, :create]
删除操作
def destroy
if current_user.admin?
@powersaving = Powersaving.find(params[:id])
@powersaving.destroy
end
respond_to do |format|
format.html { redirect_to powersavings_url }
format.json { head :no_content }
end
end
当我点击&#34;删除&#34;链接显示&#34;你确定吗?&#34;弹出,单击确定转到Devise的sign_in页面。如果当前用户以&#34; admin&#34;登录,则需要提供删除操作。我做错了什么?
答案 0 :(得分:0)
添加
Schematic
到您的<%= csrf_meta_tag %>
答案 1 :(得分:-1)
GET
之外的所有HTTP方法都必须向服务器发送真实性的CSRF令牌
避免此问题的一种方法是进入application_controller.rb
并对protect_from_forgery
行进行评论。这只是让它现在正常工作的一种方法,因为不建议在没有CSRF检查的情况下离开您的应用程序
稍后,您可以找到一种方法,不检查链接上的CSRF令牌和没有表单的自定义操作。