提交 251a5d45 编写于 作者: N Nicholas Seckar

Fix eager loading error messages, allow :include to specify tables using...

Fix eager loading error messages, allow :include to specify tables using strings or symbols. Closes #2222

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2258 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
上级 b9c79f19
*SVN*
* Fix eager loading error messages, allow :include to specify tables using strings or symbols. Closes #2222 [Marcel Molina]
* Added check for RAILS_CONNECTION_ADAPTERS on startup and only load the connection adapters specified within if its present (available in Rails through config.connection_adapters using the new config) #1958 [skae]
* Fixed various problems with has_and_belongs_to_many when using customer finder_sql #2094 [Florian Weber]
......
......@@ -782,14 +782,15 @@ def find_with_associations(options = {})
def reflect_on_included_associations(associations)
[ associations ].flatten.collect { |association| reflect_on_association(association) }
[ associations ].flatten.collect { |association| reflect_on_association(association.to_s.intern) }
end
def guard_against_missing_reflections(reflections, options)
reflections.each do |r|
raise(
ConfigurationError,
"Association was not found; perhaps you misspelled it? You specified :include => :#{options[:include].join(', :')}"
"Association was not found; perhaps you misspelled it? " +
"You specified :include => :#{[options[:include]].flatten.join(', :')}"
) if r.nil?
end
end
......
......@@ -136,12 +136,22 @@ def test_eager_with_has_one_dependent_does_not_destroy_dependent
end
def test_eager_with_invalid_association_reference
assert_raises(ActiveRecord::ConfigurationError, "Association was not found; perhaps you misspelled it? You specified :include => :monkeys") {
post = Post.find(6, :include=> :monkeys )
}
assert_raises(ActiveRecord::ConfigurationError, "Association was not found; perhaps you misspelled it? You specified :include => :monkeys") {
post = Post.find(6, :include=>[ :monkeys ])
}
assert_raises(ActiveRecord::ConfigurationError, "Association was not found; perhaps you misspelled it? You specified :include => :monkeys") {
post = Post.find(6, :include=>[ 'monkeys' ])
}
assert_raises(ActiveRecord::ConfigurationError, "Association was not found; perhaps you misspelled it? You specified :include => :monkeys, :elephants") {
post = Post.find(6, :include=>[ :monkeys, :elephants ])
}
end
def test_eager_with_valid_association_as_string_not_symbol
assert_nothing_raised { Post.find(:all, :include => 'comments') }
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册