【发布时间】:2015-11-28 22:54:40
【问题描述】:
我正在编写一个 Rails 引擎,在我的一个观点中,如果存在命名路由,我想创建一个指向 main_app 的链接。
我将举一个例子来澄清这个问题: 主应用程序可能会或可能不会在 routes.rb 中定义:
resources :my_resource, only: :index
只有在 main_app 定义了该路由时,我才需要在我的 rails 引擎中添加指向 my_resource_path 的链接。我认为应该是这样的:
<%= link_to "Link", main_app.my_path if my_resource_path_exists? %>
我试过了:
<%= link_to "Link", main_app.my_resource_path if
main_app.respond_to?(:my_resource_path) %>
但是,当路径不存在时,会引发 NoMethodError:
undefined method `my_resource_path' for #<Module>
my_resource_path_如何存在?方法可以实现吗?我正在使用 ruby 2.2 和 rails 4.2
问题涉及到:Determine if path exists as route in Rails controller 但是在这种情况下,我有一个命名路由(my_resource_path),所以我需要一些稍微不同的东西,但我自己无法弄清楚。
【问题讨论】:
-
我只是编辑问题以解释差异
标签: ruby-on-rails