![](/img/trans.png)
[英]Accessing engine routes from 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.