Ruby:简明的内联作业?

时间:2013-06-28 21:29:28

标签: ruby-on-rails ruby

我想创建三个存根模型,如下所示:

@first_user, @second_user, @third_user = stub_model(User), stub_model(User), stub_model(User)

这样可行,但似乎应该有更简洁的方法来做这件事的正确方面,我无法弄明白。

请注意,虽然它们都是存根用户,但这三个变量需要引用不同的存根模型。

2 个答案:

答案 0 :(得分:6)

试试这个:

@first_user, @second_user, @third_user = 3.times.map { stub_model(User) }

这只是循环3次并将结果映射到用户数组中,然后扩展出来以分配给ivars。

答案 1 :(得分:1)

您可以尝试:

@first_user, @second_user, @third_user = Array.new(3){ stub_model(User) }

示例示例:

Array.new(3){"foo"}.map(&:object_id)
# => [77834250, 77834230, 77834220]
Array.new(3){"12"}.map(&:object_id)
# => [77832800, 77832780, 77832770]
Array.new(3){{:a => 12 }}.map(&:object_id)
# => [77815300, 77815290, 77815270]