没有路线匹配{:action =>" show",:controller =>" report"

时间:2015-11-22 00:02:24

标签: ruby-on-rails routing

我有一个报告#show view我要link_to,但我不确定如何设置路由。

在我的包中#show view:

<% link_to 'Report', package_report_path(@package) %>

这是我的routes.rb

Rails.application.routes.draw do

  devise_for :users

  resources :packages do
    resources :sales, only: [:new]
    resources :report, only: [:show]
  end

  root "packages#index"

end

如果我rake routes

  package_report GET    /packages/:package_id/report/:id(.:format) report#show

2 个答案:

答案 0 :(得分:0)

路由设置正确,但您需要将@package@report传递给package_report_path,如:

<% link_to 'Report', package_report_path(@package, @report) %>

答案 1 :(得分:0)

您的report资源嵌套在package资源下。因此,您必须将@package@report都传递给package_report_path辅助方法:

<% link_to 'Report', package_report_path(@package, @report) %>