Rails路由,在资源路径中使用非model_id的路由
问题描述:
我有一些嵌套的资源。这里有一个例子:Rails路由,在资源路径中使用非model_id的路由
resources :contests do
resources :scoring_periods do
resources :entries
end
end
我最终想有一个看起来像下面这样的URL:
/contests/1/scoring_periods/10/entries/new
这里美中不足的是,在scoring_periods的/ 10 /不是ScoringPeriod#ID 。在这种情况下,它是另一个名为period_count的属性。我希望能够在URl中引用period_count而不是ID,因为我的系统后来可能有数百万个ID,并且在那里列出它并不直观。实际的period_count数字对参加本次比赛的用户更有意义。
有没有办法在routes.rb中搜索资源条目,以允许我通过:scoring_period_id
以外的属性引用scoring_periods?
答
像这样的东西应该工作:
resources :contests do
scope path: '/scoring_periods/:period_count/' do
resources :entries
end
end
你知道吗,资源不应该有深刻的不止一个水平? (这很旧但很实用:http://weblog.jamisbuck.org/2007/2/5/nesting-resources) – Pigueiras 2013-05-09 22:05:18