我已经阅读了很多关于此的其他 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!