我需要在我的视图中使用url帮助器生成链接,例如user_path(@user),catch是,在某些情况下我不知道我创建此链接的模型是什么,即它是用户还是商店或其他地方
我希望能够动态确定这个并调用相应的视图帮助器,目前我正在执行以下操作,但我想知道是否有更干燥的方法。
if object.class == "Store"
store_path(object)
elsif object.class == "User"
user_path(object)
...etc
答案 0 :(得分:5)
当然,使用send来动态选择方法名称
send("#{object.class.name.downcase}_path", object)
答案 1 :(得分:2)
url_for(object)
可以满足您的需求:
如果你代替哈希传递记录 (如活动记录或活动记录 Resource)作为选项参数, 你将触发指定的路线 那条记录。查找将发生 班级的名称。通过一个
Workshop
对象将尝试使用workshop_path
路线。
如果您使用的是link_to
,那么您只需将对象作为网址传递:
<%= link_to 'Title', object %>