Ruby on Rails:form_tag不起作用

时间:2012-05-23 14:56:15

标签: ruby-on-rails ruby haml

我正在尝试创建一个部分视图,其中有一个下拉列表来选择周,当按下提交按钮时,重新打开包含新数据的同一页面。这是我遇到问题的代码:

= form_tag(:controller => "/payroll_issues", :action=> "index") do

单击该按钮时,它会显示正确的URL,但页面未加载,说“未收到数据,无法加载网页,因为服务器未发送任何数据”。

问题是,当我以

运行代码时
= form_tag(:controller => "/payroll_issues", :action=> "change_week") do

其中change_week只是重定向到索引,一切都很好。索引中是否有我遗漏的东西?

1 个答案:

答案 0 :(得分:1)

表单标记助手使用method = 'post'创建表单标记,索引操作的路由可能设置为仅接受'get'请求。

要检查,您可以运行rake routes

如果您真的想要,可以添加一条路线来接受带有索引操作的帖子请求,如下所示:

# routes.rb
match '/' => 'payroll_issues#index', :as => :index, :via => :post

但是,你在问题中使用第二种技术会更好,创建一个单独的动作并重定向。

def change_week
  #do change week stuff
  redirect_to payroll_issues_url
end