如何在Ruby中添加数组

hol*_*den 14 ruby arrays hash ruby-on-rails

我确信这很简单,但我似乎无法得到它:

作品:

@build1 = Booking.build_booking('2009-06-13',3,2,18314)
@build2 = Booking.build_booking('2009-06-13',3,4,18317)
@build = @build1 + @build2
Run Code Online (Sandbox Code Playgroud)

我想要工作的......

#for item in @cart.items do
#  @build << Booking.build_booking('2009-06-13',3,2,18314)
#end
Run Code Online (Sandbox Code Playgroud)

也不起作用......

#(1..3).each do |i|
#  @build << Booking.build_booking('2009-06-13',3,2,18314)
#end
Run Code Online (Sandbox Code Playgroud)

Mag*_*nar 27

我更喜欢使用ruby在for循环中提供的精彩数组方法:

@build = @cart.items.map { |item| Booking.build_booking('2009-06-13',3,2,18314) }
Run Code Online (Sandbox Code Playgroud)


Sha*_*ell 16

对于两个迭代示例,您需要@build在调用<<它之前进行设置.

我不知道什么build_booking是复苏,但如果它是一个数组(我是从第一,工作,例如猜测),那么你可能要添加的结果build_booking@build.例如

@build = []
for item in @cart.items do
  @build += Booking.build_booking('2009-06-13',3,2,18314)
end
Run Code Online (Sandbox Code Playgroud)