rails形成动作缺失的路线

时间:2014-06-03 09:14:02

标签: ruby-on-rails ruby forms

Ruby 1.9.3并使用HAML。

尝试构建表单以进行特定操作,但遇到路由问题。表单上的代码是

%form#feedback_form{:action=>"give_feedback_account_path", :method => 'post', :style => "padding: 0 5px;"}
  %input{:name => "authenticity_token", :value => form_authenticity_token, :type => "hidden"}

  blah blah blah

  .field
    %input#feedback_submit{:type => "submit", :value => "give feedback"}

当我尝试提交表单时,我收到了404响应,查看服务器日志给了我......

Started POST "/give_feedback_account_path" for 127.0.0.1 at 2014-06-03 10:07:12 +0100
ActionController::RoutingError (No route matches "/give_feedback_account_path"):

当我运行rake路线以获取详细信息时

give_feedback_account POST   /account/give_feedback(.:format)  
{:action=>"give_feedback", :controller=>"accounts"}

我错过了什么?

2 个答案:

答案 0 :(得分:2)

你的网址是/give_feedback_account_path,这不好。要解决此问题,您可以使用form_tag帮助程序:

= form_tag give_feedback_account_path, method: 'post', style: 'padding: 0 5px;' do
  // your form goes here

答案 1 :(得分:0)

更改此

:action=>"give_feedback_account_path"

到这个

:action => give_feedback_account_path 

give_feedback_account_path是一种方法。你想打电话给它,以获得实际的路径。