加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails:确定对象是否具有命名路由

发布时间:2020-12-17 02:36:26 所属栏目:百科 来源:网络整理
导读:在Rails 3.1应用程序中,我想列出一堆变量类的对象(来自多态表),我事先并不知道.对于那些具有命名路由的资源,我想在link_to调用中使用该路由.天真的方法,而不检查是否存在这样的路线(原谅HAML): %ul- @objects.each do |object| %li= link_to object,url_for
在Rails 3.1应用程序中,我想列出一堆变量类的对象(来自多态表),我事先并不知道.对于那些具有命名路由的资源,我想在link_to调用中使用该路由.天真的方法,而不检查是否存在这样的路线(原谅HAML):

%ul
- @objects.each do |object|
  %li= link_to object,url_for(object)

如果对象是没有命名路由的类Foo的实例(例如因为它没有被定义为资源),这将引发未定义的方法’foo_path’错误.是否有一种简单的方法(例如简单的方法调用)来确定对象或类的命名路由的存在?

编辑:

我想得到的是这样的:

%ul
- @objects.each do |object|
  %li= link_to_if object.has_route?,object,url_for(object)

解决方法

如果您不希望生成没有命名路由的模型对象,或者为它们输出一些错误消息,您可以在link_to调用中添加一个救援

%ul
- @objects.each do |object|
  %li= (link_to(object,url_for(object)) rescue "no link")

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读