提交 57e9495e 编写于 作者: R Ryuta Kamizono

Fix `create_with` with multiparameter attributes

上级 16f2b204
......@@ -33,9 +33,8 @@ def scope_attributes? # :nodoc:
def populate_with_current_scope_attributes # :nodoc:
return unless self.class.scope_attributes?
self.class.scope_attributes.each do |att, value|
send("#{att}=", value) if respond_to?("#{att}=")
end
attributes = self.class.scope_attributes
_assign_attributes(attributes) if attributes.any?
end
def initialize_internals_callback # :nodoc:
......
......@@ -271,6 +271,12 @@ def test_multiparameter_attributes_on_time_only_column_with_time_zone_aware_attr
ensure
Topic.reset_column_information
end
def test_multiparameter_attributes_setting_time_attribute
topic = Topic.new("bonus_time(4i)" => "01", "bonus_time(5i)" => "05")
assert_equal 1, topic.bonus_time.hour
assert_equal 5, topic.bonus_time.min
end
end
def test_multiparameter_attributes_on_time_with_empty_seconds
......@@ -285,14 +291,6 @@ def test_multiparameter_attributes_on_time_with_empty_seconds
end
end
unless current_adapter? :OracleAdapter
def test_multiparameter_attributes_setting_time_attribute
topic = Topic.new("bonus_time(4i)" => "01", "bonus_time(5i)" => "05")
assert_equal 1, topic.bonus_time.hour
assert_equal 5, topic.bonus_time.min
end
end
def test_multiparameter_attributes_setting_date_attribute
topic = Topic.new("written_on(1i)" => "1952", "written_on(2i)" => "3", "written_on(3i)" => "11")
assert_equal 1952, topic.written_on.year
......@@ -300,13 +298,34 @@ def test_multiparameter_attributes_setting_date_attribute
assert_equal 11, topic.written_on.day
end
def test_create_with_multiparameter_attributes_setting_date_attribute
topic = Topic.create_with("written_on(1i)" => "1952", "written_on(2i)" => "3", "written_on(3i)" => "11").new
assert_equal 1952, topic.written_on.year
assert_equal 3, topic.written_on.month
assert_equal 11, topic.written_on.day
end
def test_multiparameter_attributes_setting_date_and_time_attribute
topic = Topic.new(
"written_on(1i)" => "1952",
"written_on(2i)" => "3",
"written_on(3i)" => "11",
"written_on(4i)" => "13",
"written_on(5i)" => "55")
"written_on(1i)" => "1952",
"written_on(2i)" => "3",
"written_on(3i)" => "11",
"written_on(4i)" => "13",
"written_on(5i)" => "55")
assert_equal 1952, topic.written_on.year
assert_equal 3, topic.written_on.month
assert_equal 11, topic.written_on.day
assert_equal 13, topic.written_on.hour
assert_equal 55, topic.written_on.min
end
def test_create_with_multiparameter_attributes_setting_date_and_time_attribute
topic = Topic.create_with(
"written_on(1i)" => "1952",
"written_on(2i)" => "3",
"written_on(3i)" => "11",
"written_on(4i)" => "13",
"written_on(5i)" => "55").new
assert_equal 1952, topic.written_on.year
assert_equal 3, topic.written_on.month
assert_equal 11, topic.written_on.day
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册