1

我有这样的问题:我不需要嵌套所有资源,因为我只需要两个动作。

首先 - 显示与 1 个网站相关的所有报告。

第二 - 显示所有报告。

当我像这样重写 routes.rb 中的代码时:

resources :websites do
 member do
  match 'performance_reports' => 'performance_reports#index'
  match 'performance_reports/show' => 'performance_reports#show'
 end
end
 //rake routes
    performance_reports_website        /websites/:id/performance_reports(.:format)            
performance_reports#index

  performance_reports_show_website        /websites/:id/performance_reports/show(.:format) 
performance_reports#show

这是我的行动:

 before_filter :load_website
  private

 def load_website
   @website = Website.find(params[:website_id])
 end

def index
   @performance_reports = @website.performance_reports
end

视图代码:

    <%= link_to "Link",  performance_reports_website_path(website)) %>

但是当我调用它时,我得到了错误:

  Couldn't find Website without an ID
  rb:7:in `load_website'

我做错了什么?

4

1 回答 1

1

在控制器中将代码更改为

@website = Website.find(params[:id])
于 2012-09-05T10:10:34.570 回答