aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2012-11-28 13:41:29 -0800
committerRafael Mendonça França <rafaelmfranca@gmail.com>2012-11-28 13:41:29 -0800
commite9df07870fc16eaefbff60e0e80921489eefcd91 (patch)
tree5d026b585b76937689e9834f8cf7df99aaa13e16 /activerecord
parent4c99d0870c87e136b257e03fffdfc5f86c60ff34 (diff)
parent22df38ca3306684033039fd0bc20b1025f4f8e2a (diff)
downloadrails-e9df07870fc16eaefbff60e0e80921489eefcd91.tar.gz
rails-e9df07870fc16eaefbff60e0e80921489eefcd91.tar.bz2
rails-e9df07870fc16eaefbff60e0e80921489eefcd91.zip
Merge pull request #8355 from steveklabnik/update_7418
Ensure that associations have a symbol argument.
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/CHANGELOG.md2
-rw-r--r--activerecord/lib/active_record/associations/builder/association.rb2
-rw-r--r--activerecord/test/cases/associations_test.rb8
3 files changed, 12 insertions, 0 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md
index ee99e86157..23e38c55d2 100644
--- a/activerecord/CHANGELOG.md
+++ b/activerecord/CHANGELOG.md
@@ -1,5 +1,7 @@
## Rails 4.0.0 (unreleased) ##
+* Ensure that associations take a symbol argument. *Steve Klabnik*
+
* Fix dirty attribute checks for `TimeZoneConversion` with nil and blank
datetime attributes. Setting a nil datetime to a blank string should not
result in a change being flagged. Fix #8310
diff --git a/activerecord/lib/active_record/associations/builder/association.rb b/activerecord/lib/active_record/associations/builder/association.rb
index 1df876bf62..5c37f42794 100644
--- a/activerecord/lib/active_record/associations/builder/association.rb
+++ b/activerecord/lib/active_record/associations/builder/association.rb
@@ -13,6 +13,8 @@ module ActiveRecord::Associations::Builder
end
def initialize(model, name, scope, options)
+ raise ArgumentError, "association names must be a Symbol" unless name.kind_of?(Symbol)
+
@model = model
@name = name
diff --git a/activerecord/test/cases/associations_test.rb b/activerecord/test/cases/associations_test.rb
index c0f1945cec..d7f25f760e 100644
--- a/activerecord/test/cases/associations_test.rb
+++ b/activerecord/test/cases/associations_test.rb
@@ -289,6 +289,14 @@ class OverridingAssociationsTest < ActiveRecord::TestCase
DifferentPeopleList.reflect_on_association(:has_one)
)
end
+
+ def test_requires_symbol_argument
+ assert_raises ArgumentError do
+ Class.new(Post) do
+ belongs_to "author"
+ end
+ end
+ end
end
class GeneratedMethodsTest < ActiveRecord::TestCase