我有这样的问题:我不需要嵌套所有资源,因为我只需要两个动作。
首先 - 显示与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'
我做错了什么?
答案 0 :(得分:1)
在控制器中将代码更改为
@website = Website.find(params[:id])