From 99ca87b7c4b4dd77700f8d774f17f11efd1ef3ed Mon Sep 17 00:00:00 2001 From: Konstantin Haase Date: Tue, 28 Apr 2015 12:41:29 +0200 Subject: [PATCH] API v3: make polymorphic has_many work --- lib/travis/api/v3/extensions/belongs_to.rb | 5 +++++ spec/v3/extensions/belongs_to_spec.rb | 1 + 2 files changed, 6 insertions(+) diff --git a/lib/travis/api/v3/extensions/belongs_to.rb b/lib/travis/api/v3/extensions/belongs_to.rb index 28aaa918..74bae01f 100644 --- a/lib/travis/api/v3/extensions/belongs_to.rb +++ b/lib/travis/api/v3/extensions/belongs_to.rb @@ -27,6 +27,11 @@ module Travis::API::V3 polymorfic_foreign_types << (options[:foreign_type] || "#{field}_type") if options[:polymorphic] super end + + def name + return super unless caller_locations.first.base_label == 'add_constraints'.freeze + @constraint_name ||= super.sub("#{parent}::", ''.freeze) + end end def self.included(base) diff --git a/spec/v3/extensions/belongs_to_spec.rb b/spec/v3/extensions/belongs_to_spec.rb index dd031ab5..b7a28042 100644 --- a/spec/v3/extensions/belongs_to_spec.rb +++ b/spec/v3/extensions/belongs_to_spec.rb @@ -13,5 +13,6 @@ describe Travis::API::V3::Extensions::BelongsTo do example { expect(repo.owner).to be_a(Travis::API::V3::Models::User) } example { expect(::Repository.find(repo.id).owner).to be_a(::User) } + example { expect(user.repositories).to include(repo) } end end \ No newline at end of file