簡體   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