【发布时间】:2016-06-02 10:46:34
【问题描述】:
有没有办法在 Rails 应用程序中自动要求来自外部 Rails 引擎的模型,而无需显式引用引擎的路径(在我的情况下是丑陋的相对路径)?
我正在尝试为引擎中定义的一组子类添加自动生成装饰器,但 BaseClass.descendants 只列出了已经需要的后代。
编辑:一些进一步的细节——我有一个 Rails 引擎,它定义了一组模型:
class BaseModel < ActiveRecord::Base
end
class FirstSubmodel < BaseModel
end
class Second Submodel
end
引擎在另一个 Rails 项目的 Gemfile 中被引用,如下所示:
gem 'my_engine', path: '.../.../plugins/my_engine'
Rails 项目需要在初始化时为每个子模型自动生成装饰器,如下所示:
BaseModel.descendants.each {|descendant| generate_decorator(descendant)}
但是,'descendants' 返回一个空数组,因为尚未加载 FirstSubmodel 和 SecondSubmodel。
【问题讨论】:
-
能否请您详细说明您现有的实现。
标签: ruby-on-rails ruby-on-rails-4 rails-engines