1
我有一個類內app/models/user.rb
:未定義的方法`你好」爲遊戲化::用戶:模塊
class User
include Gamification::User
def self.hello
puts "hello"
end
end
我有內部lib/gamification/user.rb
一個模塊:
module Gamification
module User
extend ActiveSupport::Concern
module ClassMethods
end
end
end
我有另一個模型AP /型號/conversation.rb
class Conversation
def hello
User.hello
end
end
config/application.rb
:
config.autoload_paths += Dir["#{config.root}/app/models/**/"]
config.autoload_paths += Dir["#{config.root}/lib/**/"]
config.autoload_paths += Dir["#{config.root}/app/models/tracker_related/**/"]
config.autoload_paths += Dir["#{config.root}/app/helpers/**/"]
config.autoload_paths += Dir["#{config.root}/app/models/concerns/**/"]
當我點擊Conversation.new.hello
那麼我希望它應該打印"hello"
。但它返回:
undefined method `hello' for Gamification::User:Module.
我在做什麼錯在這裏?
這似乎是一個命名衝突 - 當您在User類中調用User.new時,ruby將使用模塊User而不是User'類。試試':: User.hello' – BroiSatse 2014-09-02 21:29:40
我們從多個地方調用這個方法。我無法改變這個每一個地方。我剛剛添加了用戶模塊。 – 2014-09-02 22:19:12
任何其他方式,而不是追加::每個電話? – 2014-09-02 22:19:32