设想:
- 一个主要的 Rails 应用程序
- 各种 Rails 引擎,安装在主要 Rails 应用程序 (routes.rb)
现在假设我有一个名为“Engine”的引擎,里面有一个名为“Topic”的模型。就像是Engine::Topic < ActiveRecord::Base
现在在这个引擎内部,如果我必须为 的任何实例生成路由Topic
,我会执行以下操作:
@topic = Engine::Topic.first
# inside helpers/views, i can write the below statement
url_for ([@topic])
# and it will give me exact "show" route for this topic. Like "/engine/topic/1"
# But this works only inside engines. If i write this inside main Application,
# it gives an error "undefined method 'topic_path'"
现在我怎样才能使它成为一个通用模式?
意味着我可以拥有任何模型的任何对象(来自各种引擎)并且我能够以干净的方式找出它的路线?