nested conditions with set_table_name?

When passing hash conditions on a joined association to find(), I
expected ActiveRecord to interpret the hash key as the association
name and use the corresponding table name in the query. However, it
seems to be interpreting the hash key as the table name.

Given these:

class Foo < ActiveRecord::Base
  has\_many :bars
end
class Bar < ActiveRecord::Base
  set\_table\_name 'some\_bars'
end

I expected :bars to be treated as the association name -- not the
table name -- to which :name => "baz" is applied.

    f = Foo.create
    b = f.bars.create :name => "baz"
    assert_nothing_raised do
      res = Foo.find :all, :conditions => { :bars => { :name => "baz" } },
        :joins => :bars
      assert_equal c.id, res.first.id
    end

Running this test results in the following failure. I expected the
query condition to have "some_bars"."name", not "bars"."name".

  1) Failure:
test_include_with_set_table_name_uses_table_not_class_name(IncludeWithSetTableNameTest)
    [./test/cases/associations/nested_conditions_with_set_table_name_test.rb:38:in
`test_include_with_set_table_name_uses_table_not_class_name'
     ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:62:in
`__send__'
     ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:62:in
`run']:
Exception raised:
Class: <ActiveRecord::StatementInvalid>
Message: <"SQLite3::SQLException: no such column: bars.name: SELECT
\"foos\".* FROM \"foos\" INNER JOIN \"some_bars\" ON
some_bars.foo_id = foos.id WHERE (\"bars\".\"name\" = 'baz') ">
---Backtrace---
./test/cases/../../lib/active_record/connection_adapters/abstract_adapter.rb:219:in
`log'
./test/cases/../../lib/active_record/connection_adapters/sqlite_adapter.rb:172:in
`execute_without_query_record'
./test/cases/../../lib/active_record/connection_adapters/sqlite_adapter.rb:417:in
`catch_schema_changes'
./test/cases/../../lib/active_record/connection_adapters/sqlite_adapter.rb:172:in
`execute_without_query_record'
./test/cases/helper.rb:36:in `execute'
./test/cases/../../lib/active_record/connection_adapters/sqlite_adapter.rb:320:in
`select'
./test/cases/../../lib/active_record/connection_adapters/abstract/database_statements.rb:7:in
`select_all_without_query_cache'
./test/cases/../../lib/active_record/connection_adapters/abstract/query_cache.rb:62:in
`select_all'
./test/cases/../../lib/active_record/base.rb:661:in `find_by_sql'
./test/cases/../../lib/active_record/base.rb:1548:in `find_every'
./test/cases/../../lib/active_record/base.rb:615:in `find'
./test/cases/associations/nested_conditions_with_set_table_name_test.rb:39:in
`test_include_with_set_table_name_uses_table_not_class_name'
./test/cases/associations/nested_conditions_with_set_table_name_test.rb:38:in
`test_include_with_set_table_name_uses_table_not_class_name'
./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:62:in
`__send__'
./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:62:in
`run'