0

このコード行の問題点を教えてください。このエラーが発生しています。

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 のサイズに応じて配列を追加して格納することを正しく許可していると思います

ありがとう

4

1 に答える 1

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、それはあなたorderdescがであることを意味しますnil。空の配列に初期化する必要があります。

@order.orderdesc ||= []
@order.orderdesc += @cart.line_items
于 2013-06-08T00:52:03.290 に答える