簡體   English   中英

模型中包含的模塊的未初始化常量

[英]uninitialized constant for module included in model

我已經閱讀了一些關於此的其他SO帖子,似乎慣例是將模塊放在lib(lib / my_module.rb)中,並將其命名為CamelCase(模塊MyModule),然后將其包含在模型中(包括MyModule) 。 我做了所有這些,仍然得到“未初始化的常量Model :: MyModule”。 我想知道Rails 4中是否有變化,或者我是否必須在config / environment.rb文件中執行某些操作。 這是我的代碼:

應用程序/模型/ comment.rb

class Comment < ActiveRecord::Base
    include KarmaExtension # error at this line

    belongs_to :user
    belongs_to :post
    belongs_to :parent, class_name: "Comment"

    ...
end

LIB / karma_extension.rb

module KarmaExtension
    def karma_recieved_from?(sender)
        sender ? !karmas.where("sender_id = ?", sender.id).empty? : true
    end
end

和我的config / environment.rb以防萬一(沒有觸及此文件)

# Load the Rails application.
require File.expand_path('../application', __FILE__)

# Initialize the Rails application.
RailsHnClone::Application.initialize!

/lib添加到load_path

# in config/application.rb
config.autoload_paths += %W(#{config.root}/lib)

並要求你的lib:

# in config/initializers/karma_extension.rb
require 'karma_extension'

在這里找到答案: http//blog.chrisblunt.com/rails-3-how-to-autoload-and-autorequire-your-custom-library-code/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM