1
I delegate
とalias
Railsデリゲートとエイリアス - 無限ループ?
class Company
field :name
end
class Employee < Professional
include CompanyMember
end
class Professional
include UserProfile
end
module CompanyMember
belongs_to :company
delegate :name, to: :company, prefix: true
alias :organization_name :company_name
end
module UserProfile
def to_s
out = "#{name} "
out += "(#{organization_name})" if respond_to?(:organization_name)
end
def inspect
to_s + super
end
end
を含む以下の無限ループを理解していない私は不足している会社とEmployee
を持っている、と私は、次の無限ループを持って
app/models/concerns/user_profile.rb:94:in `inspect'
app/models/concerns/company_member.rb:8:in `rescue in company_name'
app/models/concerns/company_member.rb:8:in `company_name'
app/models/concerns/user_profile.rb:89:in `to_s'
app/models/concerns/user_profile.rb:94:in `inspect'
app/models/concerns/company_member.rb:8:in `rescue in company_name'
app/models/concerns/company_member.rb:8:in `company_name'
app/models/concerns/user_profile.rb:89:in `to_s'
わかりました。実際には、私は実際に私のクラスの 'inspect'メソッドと' to_s'メソッドをオーバーライドして、コンソールのデバッグをはるかに簡単にすることができることを知ったが、その後、すべてのトラップに入るように見える。ガイドライン/ ? –
@ CyrilDuchon-Doris:そうですね。少なくとも、 'inspect'をオーバーライドしないでください。 –
@ CyrilDuchon-Doris:コンソールで簡単にデバッグするために、私は 'awesome_print'を使用します。 –