提交 1d6b6202 编写于 作者: C Cohen Carlisle

allow ActiveRecord::Core#slice to use array arg

上级 70562738
* Allow `slice` to take an array of methods (without need for splatting).
*Cohen Carlisle*
* Improved partial writes with HABTM and has many through associations
to fire database query only if relation has been changed.
......
......@@ -538,7 +538,7 @@ def pretty_print(pp)
# Returns a hash of the given methods with their names as keys and returned values as values.
def slice(*methods)
Hash[methods.map! { |method| [method, public_send(method)] }].with_indifferent_access
Hash[methods.flatten.map! { |method| [method, public_send(method)] }].with_indifferent_access
end
private
......
......@@ -1428,6 +1428,16 @@ def test_slice
assert_nil hash["firm_name"]
end
def test_slice_accepts_array_argument
attrs = {
title: "slice",
author_name: "@Cohen-Carlisle",
content: "accept arrays so I don't have to splat"
}.with_indifferent_access
topic = Topic.new(attrs)
assert_equal attrs, topic.slice(attrs.keys)
end
def test_default_values_are_deeply_dupped
company = Company.new
company.description << "foo"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册