我们在使用Rails的路由辅助方法时,我们可以通过包含参数的数组来生成。假设你有以下路由:

resources :magazines do resources :ads end

当你使用magazine_ad_path时,你可以传入两个实例来替代直接传入id。

<%= link_to "Ad details", magazine_ad_path(@magazine, @ad) %>

同时你也可以使用url_for方法来替代,Rails会自动决定你想要的路由。

<%= link_to "Ad details", url_for([@magazine, @ad]) %>

在这里,Rails会知道@magazine@adMagazineAd的实例,因此会使用magazine_ad_path方法。 如果你使用的是link_to这个helper方法,你可以直接写对象数组,而不需要写url_for

<%= link_to "Ad details", [@magazine, @ad] %>

如果只有一个对象,可以连数组都不用写。

<%= link_to "Magazine details", @magazine %>