设计1.2 rails 3.0.5
我在我的控制器中有这个:before_filter :authenticate_user!
提交表单后,我将重定向到登录页面,用户将自动注销。即使他们已经登录,这似乎发生在表格帖子上。这是有问题的行动:
def next
myObject = theObject.first
myObject.current_number = params[:next_number]
myObject.save!
redirect_to :action => 'index'
end
在我看来:
%form{:method => "post"}
%input#nextNumber{:name => "next_number", :type => "hidden", :value => "7"}/
在js中触发如下:
$("form").submit();
为什么会发生这种情况?找不到任何有用的信息...
答案 0 :(得分:2)
看起来您可能已经以另一种方式解决了您的问题,但我遇到了类似的问题,最终与我的表单上缺少的真实性令牌有关。该视图未使用Rails form_for帮助程序,因此表单提交中未包含authenticity_token。
即
<form action="..." method="POST">...</form>
更改为
<%= form_for :form, :url => "..." do |f| %> ... <% end %>
结果
<form action="..." method="POST">
<input name="authenticity_token" type="hidden" value="...">
...
</form>
有关authenticity_token的更多详细信息:Understanding the Rails Authenticity Token