没有路线匹配

时间:2011-11-24 05:34:24

标签: ruby-on-rails routing

我有一个文件reports / print.html.erb

<_>在reports_controller中

def print
  @report = Report.find(params[:id])

  respond_to do |format|
    format.html { render :layout => false }
    format.xml  { render :xml => @report }
  end
end

在routes.rb

match 'reports/print(:id)' 

试图用

打电话
<%= link_to 'Print', report_print_path(:id => @report.id), :method => :put %>

并收到此错误:

报告中的 ActionController :: RoutingError#show
没有路线匹配{:action =&gt;“print”,:id =&gt; 23,:controller =&gt;“report”}

我哪里错了?

2 个答案:

答案 0 :(得分:1)

将您的路线更改为:

match 'reports/print/:id' => 'controller#print', :via => :put

这可能会解决它(虽然没有测试代码,并将'controller#print'部分更改为您的实际控制器名称。

答案 1 :(得分:0)

使其与

一起使用
<%= link_to 'Print', print_url(:id => @report.id) %>

match 'print/(:id)' => 'reports#print', :via => :get, :as => :print

不知道为什么它会给我带来麻烦,我生命中有4个小时我永远不会回来。