繁体   English   中英

仅当Rails.application.routes.url_helpers存在路由时,才将链接链接到路径

[英]Link_to a path only if route exists with Rails.application.routes.url_helpers

我正在构建一个表部分(使用带有相应子类的自定义“ Table”类),该表将为我的应用程序的多个模型生成表。 我要实现的目标是使表行链接到显示页面,但是由于并非所有模型都具有显示页面,因此链接必须是有条件的。

我发现了这个问题,但不幸的是,提示那里的答案似乎对我不起作用。

这里相关代码:

%tbody
  - @table.rows.each do |row|
    %tr
      -row.attributes.each do |cell|
        %td.clickable-cell
          = link_to cell, polymorphic_url(row.object) 

如果我添加了if Rails.application.routes.url_helpers.method_defined?(polymorphic_url(row.object))if Rails.application.routes.url_helpers.respond_to?(polymorphic_url(row.object))条件,则不会生成链接根本不适合有或没有展示的页面。

如果未应用任何条件,并且单击了没有显示页面的模型的链接,则显示Routing Error No route matches

关于我可能做错了什么以及如何解决的任何想法?

关于我可能做错了什么的任何想法

当然是。 method_defined? respond_to? 接受方法名称(例如:user_path ),而不是网址( http://example.com/users/1 )。

以及如何解决?

您可以尝试这样的事情:

if Rails.application.routes.url_helpers.respond_to?("#{object.model_name.singular_route_key}_path")

对于User ,这将返回user_path

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM