Rails - 没有路由匹配POST

时间:2013-12-12 16:22:06

标签: ruby-on-rails view routes

我的routes.rb文件中包含以下内容:

post 'report/mnps/generate' => 'report#mnps_generate', as: 'report_mnps_generate'

然后,在我的reports/mnps.html.erb视图中,我有这个:

<%= button_to report_mnps_generate_path %>

但是,此按钮会重定向到reports/mnps的帖子方法。为什么此按钮重定向到那里而不是report/mnps/generate

修改

rake routes返回:

          Prefix Verb URI Pattern                             Controller#Action
              root GET  /                                       home#index
      report_index GET  /report(.:format)                       report#index
       report_mnps GET  /report/mnps(.:format)                  report#mnps
report_mnps_generate POST /report/mnps/generate(.:format)         report#mnps_generate

1 个答案:

答案 0 :(得分:1)

button_to的定义表明第一个参数是其名称,通常用作标签。见这里:

http://apidock.com/rails/ActionView/Helpers/UrlHelper/button_to

要获取该页面的链接,您需要像这样编写按钮

button_to('Clickme!', report_mnps_generate_path)

加载您说明的页面的原因是该按钮实际上位于同一页面上并且只是重新加载它,因为您的button_to调用中未定义其他目的地。