无法管理嵌套资源

时间:2012-09-05 10:07:01

标签: ruby-on-rails nested-resources nested-routes

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

首先 - 显示与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'

我做错了什么?

1 个答案:

答案 0 :(得分:1)

在控制器中将代码更改为

@website = Website.find(params[:id])