让我们看看嵌套资源示例,以下是模型:
class Magazine < ActiveRecord::Base
has_many :ads, :order => 'time_start'
end
class Ad < ActiveRecord::Base
belongs_to :magazine
end
到目前为止的路由如下:
resources :magazines do
resources :ads
end
这会自动生成/magazines/:magazine_id/ads/:id
等网址。
但是,我想要略有不同的网址方案,更多的是“杂志”中心。常规嵌套URL方案应如下所示:/magazines/:id/:ad_num/component
,其中:
/magazines/:id/:ad_num
),而是“ad”中有多个组件,使用多个不同的操作显示我想完全没有AdsController
,所有这些路线应指向MagazineController
中的各种操作,例如magazines/5/1/title
应该指向MagazineController
= &GT; title
params[:id] = 5
和params[:ad_num] = 1
。
当然,像title_ad_magazine(@magazine, @ad)
这样有用的网址助手最有帮助。
如何在新的Rails路由DSL中执行此操作?
答案 0 :(得分:1)
您可以使用这样的参数键生成自定义路由
get '/magazines/:id/:ad_num/title' => 'magazine#title', as: :magazine_ads_title
您将parmams[:id]
和params[:ad_num]
与网址的
您不需要使用as:选项,但您可能会发现生成直观的网址助手很有帮助