56

我正在尝试引用关联扩展,但它会出现以下错误:

NameError (uninitialized constant User::ListerExtension):
  app/models/user.rb:2:in `<class:User>'

这是我的实现:

应用程序/模型/user.rb

class User < ActiveRecord::Base
  include ListerExtension

  has_and_belongs_to_many :roles, :uniq => true, :extend => Lister

库/lister.rb

module ListerExtension
  def lister
    self.map(&:to_s).join(', ')
  end
end

我正在使用 Rails v3.1.3。

4

1 回答 1

95

Andrew Marshall 对自动加载设置有一个很好的观点(有关更多信息,请参见他链接的问题),而且:因为您命名了 class ListerExtension,Rails 将寻找一个名为 -notlister_extension.rb文件 lister.rb。它很聪明,但没那么聪明。

希望有帮助!

于 2012-09-06T19:04:44.363 回答