我在写一个Rails引擎,并且在我的一个视图中,我想创建一个指向main_app的链接(如果存在命名路由)。Rails:link_to只有在路由存在的情况下
我举一个例子来阐明这个问题: 主应用程序可能会或可能不会在routes.rb中定义:
resources :my_resource, only: :index
在我的rails引擎,我需要添加一个链接只有到my_resource_path main_app定义该路线。我认为它应该是这样的:
<%= 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_exists?方法可以执行?我使用的红宝石2.2和4.2轨道
的问题是关于:Determine if path exists as route in Rails controller 但在这种情况下,我有一个名为路线(my_resource_path),所以我需要的东西略有不同,但不能由我自己弄清楚。
的[确定是否路径路线的Rails控制器存在]可能的复制( http://stackoverflow.com/questions/3273715/determine-if-path-exists-as-route-in-rails-controller) –
我只是编辑问题来解释差异 –