他の人のコードで作業しており、次のクラス階層を持つRailsアプリケーションでHTTPartyサービスを使用しています。親クラスと異なる署名を持つサブクラス#initialize
に注意してください。私は、「初期化されていません」のメッセージについてのドキュメントを見つけることができませんRuby:初期化されていない未定義のメソッド
A::PublicUser.new(limit: 1).some_method
undefined method `some_method' for #<A::PublicUser not initialized>
:
module A
class Base
include HTTParty
...
end
end
module A
class User < Base
def initialize(user)
@user = user
end
end
end
module A
class PublicUser < User
def initialize(opts = {})
@limit = opts[:limit]
# no call to super
end
end
end
は、ローカルで次の結果がこれでは問題ありませんが、SemaphoreCIインチこのような失敗の原因は何ですか?
これは普通のルビーですか、それともレールですか? – mudasobwa
エラーの原因となったクラスは、すべて普通のルビです。しかし、Railsアプリケーションで呼び出されています。 – steel
明示的にすべてのファイルが必要ですか? – mudasobwa