除了使用路由帮助方法之外,Rails 还能从参数数组中创建路径和 URL。例如,假设有如下路由:
resources
:magazines
do resources
:adsend |
使用 magazine_ad_path 时,可以不传入数字
ID,传入 Magazine 和 Ad 实例即可:
<%=
link_to 'Ad
details',
magazine_ad_path(@magazine,
@ad)
%> |
而且还可使用 url_for 方法,指定一组对象,Rails
会自动决定使用哪个路由:
<%=
link_to 'Ad
details',
url_for([@magazine,
@ad])
%> |
此时,Rails 知道 @magazine 是 Magazine 的实例,@ad 是 Ad 的实例,所以会调用 magazine_ad_path 帮助方法。使用 link_to 等方法时,无需使用完整的 url_for 方法,直接指定对象即可:
<%=
link_to 'Ad
details',
[@magazine,
@ad]
%> |
如果想链接到一本杂志,可以这么做:
<%=
link_to 'Magazine
details',
@magazine
%> |
要想链接到其他动作,把数组的第一个元素设为所需动作名即可:
<%=
link_to 'Edit
Ad',
[:edit,
@magazine,
@ad]
%> |
在这种用法中,会把模型实例转换成对应的 URL,这是资源式路由带来的主要好处之一。
本文介绍Rails应用中如何利用路由和模型实例来生成路径和URL。通过示例展示了如何使用magazine_ad_path帮助方法及url_for方法链接到特定资源,简化了路径生成过程。

565

被折叠的 条评论
为什么被折叠?



