1

长话短说,我手动使用它,因为我必须在纯 html 中创建表单。

我使用部分(在haml中)

%input{name: "authenticity_token", type: "hidden", value: form_authenticity_token}

这将输出一个空白输入框:

<input name='authenticity_token' type='hidden'>

但这工作正常:

%input{name: "authenticity_token", type: "hidden", value: session[:_csrf_token]}

奇怪的是,我从文档中得到了这个

有谁知道发生了什么?

4

1 回答 1

4

我认为您引用的文档暗示此方法form_authenticity_token()只能在控制器中访问(类:ActionController ::RequestForgeryProtection)。

你应该session[:_csrf_token]直接使用或者你可以设置一个共享变量:

# in controller
def my_action
  @auth_token_form = form_authenticity_token
end

# in view
%input{name: "authenticity_token", type: "hidden", value: @auth_token_form}
于 2013-08-01T14:44:30.243 回答