ruby on rails语法循环错误

时间:2013-06-08 00:48:30

标签: ruby-on-rails ruby

有人可以告诉我这行代码有什么问题。我收到了这个错误。

SyntaxError in OrdersController#new

C:/***/orders_controller.rb:55: syntax error, unexpected tASSOC, expecting keyword_end
                    @order.orderdesc => {i => @cart.line_items[i]}
                                       ^

这是代码行

@cart.line_items.length.times do |i|
     @order.orderdesc => {i => @cart.line_items[i]}
end

orderdesc是表格中的可序列化列,我认为我正确地允许根据line_items的大小添加和存储数组

由于

1 个答案:

答案 0 :(得分:1)

如果您打算将所有@cart.line_items添加到@order.orderdesc,那么您做错了。这是一个改进:

@cart.line_items.each do |item|
  @order.orderdesc << item
end

或更简单:

@order.orderdesc += @cart.line_items

如果您获得undefined method for nil:NilClass,则表示您的orderdescnil。你必须初始化为空数组。

@order.orderdesc ||= []
@order.orderdesc += @cart.line_items