test "pass this test" do
@item_one.change
@item_two.change
@item_one.reload
@item_two.reload
assert @item_one.changed?
assert @item_two.changed?
end
我试图干掉这个
test "pass this test" do
(@item_one, @item_two).change
(@item_one, @item_two).reload
assert (@item_one, @item_two).changed?
end
显然不起作用,因为我们要调用数组上的方法。同时,对于2个对象来说,循环似乎太乏味了。
我在找什么?
答案 0 :(得分:2)
这个怎么样?
test "pass this test" do
[@item_one, @item_two].each(&:change)
[@item_one, @item_two].each(&:reload)
assert [@item_one, @item_two].map(&:changed?).all?
end
each(&:...)
是each do ... end
和map(&:...)
的捷径
map do ... end
是{{1}}的快捷方式。
答案 1 :(得分:0)
我不认为你想要的确切存在。我能想到的最接近的是
[@item_one, @item_two].map {|x| x.change }