【发布时间】:2018-06-04 10:52:50
【问题描述】:
在我的 Rails 博客应用程序中,当我尝试提交新帖子的表单时收到此错误消息:
PostsController#create 中的 ActionController::InvalidAuthenticityToken ActionController::InvalidAuthenticityToken 提取的源代码(在 #211 行附近):
def handle_unverified_request
raise ActionController::InvalidAuthenticityToken
end
end
end
这是我的 posts_controller.rb 文件:
class PostsController < ApplicationController
def index
end
def new
end
def create
@post=Post.new(post_params)
@post.save
redirect_to @post
end
def show
@show=Post.find(params[:id])
end
private
def post_params
params.require(:post).permit(:title,:body)
end
end
这是我的表单代码:
<font color="#BD004B"><h1>New Post<br></h1></font>
<%=form_for :post, url: posts_path do |f|%>
<p>
<%=f.label :title%><br>
<%=f.text_field :title%>
</p>
<p>
<%=f.label :body%><br>
<%=f.text_area :body%>
</p>
<p>
<%=f.submit%>
</p>
<%end%>
【问题讨论】:
-
你能分享你的表单代码吗?
-
它可能是视图的缺失部分或控制器中缺失的回调方法,它跳过了发布/放置/删除请求的真实性操作。所以请按照@D1ceWard 的要求分享查看代码,我也希望看到
application_controller.rb代码。 -
@D1ceWard 我已经发布了表单代码
-
@radoAngelov 我已经发布了表单代码
-
@radoAngelov
skip_before_action :verify_authenticity_token跳过令牌验证,这是一个安全问题,顺便说一句不是解决方案,我们需要更多信息,例如 new/_form 的全部内容,与 post 和 rails 版本相关的路由,因为对于现在一切看起来都很好
标签: ruby-on-rails ruby ruby-on-rails-5.2