Rails 4.如何将authenticity_token添加到通过partial呈现的表单?
在我的rails应用程序中,在所有页面上,在head部分中有以下2个元标记:
在未使用部分呈现的表单上,存在隐藏的authenticity_token
字段
但是如果我只是加载这样的表单,这个字段就会丢失:
这是预期的行为吗? 我应该手动添加authenticity_token
吗?如果是,我该如何validation它?
编辑:
共享/ _comment_form.html.erb
{ :onsubmit => "validateCommentForm(event)" }, remote:true) do |f| %>
此外,将到该表单仍设法发布信息并创建新记录…
在您的情况下,我们有两种方法:
-
在表单选项中添加
authenticity_token: true
-
手动将authenticity_token字段添加到表单中,如下所示:
<%= hidden_field_tag :authenticity_token, form_authenticity_token -%>
好的,所以它似乎是关于远程表单而不是通过部分加载的表单:
将config.action_view.embed_authenticity_token_in_remote_forms的默认值更改为false。 此更改会破坏需要在没有JavaScript的情况下工作的远程表单,因此如果您需要此类行为,则可以将其设置为true或在表单选项中显式传递authenticity_token:true。
在这里找到答案: https : //github.com/rails/rails/issues/10608