设计重定向到登录并在表单帖子上签出用户

时间:2011-04-14 11:52:21

标签: ruby-on-rails-3 authentication devise

设计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();

为什么会发生这种情况?找不到任何有用的信息...

1 个答案:

答案 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