提交 ecbde46e 编写于 作者: G Guillermo Iguaran

Fixing has_many association when ActiveRecord::Base.pluralize_table_names is false. fixes #557

上级 e7e1d83d
......@@ -50,7 +50,7 @@ def aliased_name_for(table_name, aliased_name = nil)
end
def pluralize(table_name)
ActiveRecord::Base.pluralize_table_names ? table_name.to_s.pluralize : table_name
ActiveRecord::Base.pluralize_table_names ? table_name.to_s.pluralize : table_name.to_s
end
private
......
......@@ -13,6 +13,8 @@
require 'models/edge'
require 'models/book'
require 'models/citation'
require 'models/aircraft'
require 'models/engine'
class AssociationsJoinModelTest < ActiveRecord::TestCase
self.use_transactional_fixtures = false unless supports_savepoints?
......@@ -704,6 +706,15 @@ def test_has_many_through_goes_through_all_sti_classes
assert_equal [9, 10, new_comment.id], authors(:david).sti_post_comments.map(&:id).sort
end
def test_has_many_with_pluralize_table_names_false
engine = Engine.create(:car_id => 1)
Aircraft.pluralize_table_names = false
aircraft = Aircraft.create!(:name => "Airbus 380", :id => 1)
assert_equal aircraft.engines, [engine]
ensure
ActiveRecord::Base.pluralize_table_names = true
end
private
# create dynamic Post models to allow different dependency options
def find_post_with_dependency(post_id, association, association_name, dependency)
......
class Aircraft < ActiveRecord::Base
has_many :engines, :foreign_key => "car_id"
end
......@@ -40,6 +40,10 @@ def create_table(*args, &block)
t.references :account
end
create_table :aircraft, :force => true do |t|
t.string :name
end
create_table :audit_logs, :force => true do |t|
t.column :message, :string, :null=>false
t.column :developer_id, :integer, :null=>false
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册