![](/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.