使用关注点覆盖Rails引擎模型,获得未初始化的常量问题::模型

时间:2015-04-04 21:40:21

标签: ruby-on-rails ruby autoload activesupport-concern

我正在关注我override engine models的Rails指南,我正在使用ActiveSupport::Concern来覆盖它。

我在seven_gallery/lib/concerns/models/gallery.rb中的引擎内创建了一个包含以下代码的模块:

module SevenGallery::Concerns::Models::Gallery
    extend ActiveSupport::Concern

    included do
        has_many :photos, dependent: :destroy
        default_scope { order("created_at desc") }
    end
end

并将seven_gallery/app/models/seven_gallery/gallery.rb代码更改为:

module SevenGallery
  class Gallery < ActiveRecord::Base
    include SevenGallery::Concerns::Models::Gallery
  end
end

现在在我的主机应用程序中,我已将我的引擎包含在Gemfile

gem "seven_gallery", path: "../seven_gallery"

我有一个User模型,其中包含:

class User < ActiveRecord::Base
  has_one :gallery, class_name: SevenGallery::Gallery
end

但每当我运行应用程序时,我都会在User模型中的唯一一行上出现此错误:

uninitialized constant Concerns::Models

1 个答案:

答案 0 :(得分:4)

面对同样问题的任何人。事实证明这是因为文档不够清晰并且存在一些缺陷。

请查看此帖子https://groups.google.com/forum/#!topic/rubyonrails-docs/Oo68KwRdwyo