Permalink
Browse files

Checks to see if the record contains the foreign_key to set the inver…

…se automatically
  • Loading branch information...
1 parent 1dfe05f commit 02ca5580bd5f70dbd5ffcd147da6b99e2c90c265 @ehtb ehtb committed Nov 16, 2013
@@ -1,3 +1,7 @@
+* Checks to see if the record contains the foreign_key to set the inverse automatically
+
+ *Edo Balvers*
+
* `.unscope` now removes conditions specified in `default_scope`.
*Jon Leighton*
@@ -226,7 +226,12 @@ def inverse_reflection_for(record)
# Returns true if inverse association on the given record needs to be set.
# This method is redefined by subclasses.
def invertible_for?(record)
- inverse_reflection_for(record)
+ foreign_key_for?(record) && inverse_reflection_for(record)
+ end
+
+ # Returns true if record contains the foreign_key
+ def foreign_key_for?(record)
+ record.attributes.has_key? reflection.foreign_key
end
# This should be implemented to return the values of the relevant key(s) on the owner,
@@ -460,6 +460,10 @@ def test_select_query_method
assert_equal ['id'], posts(:welcome).comments.select(:id).first.attributes.keys
end
+ def test_select_without_foreign_key
+ assert_equal companies(:first_firm).accounts.first.credit_limit, companies(:first_firm).accounts.select(:credit_limit).first.credit_limit
+ end
+
def test_adding
force_signal37_to_load_all_clients_of_firm
natural = Client.new("name" => "Natural Company")

0 comments on commit 02ca558

Please sign in to comment.