0

line_items というモデルがあります。価格フィールドが含まれています。ユーザーが価格を入力すると、それは foodio_price または delivery_price になります。そして、価格フィールドにはそのような値がたくさんあります。

これにチェックを入れたい。これが私の状態です:

price フィールドのすべての価格は、foodio_price または delivery_price である必要があります。そうでない場合はエラーを返し、ある場合は foodio_price か delivery_price かを示します。

誰もそれを実装するのを助けることができますか?

私はうまくいかない非常に汚いことをしました:

       @line_items.each do |i|
          if i.price == i.product.foodio_price
              @line_items.each do |i|
                if i.price == i.product.delivery_price
                  render :action => "cart"
                end
              end
          else
              @line_items.each do |i|
                if i.price == i.product.foodio_price
                  render :action => "cart"
                end
              end
          end
      end

レンダリングまたはリダイレクトの呼び出しが多すぎるというエラーが発生します

4

2 に答える 2

1

手がかりはエラー メッセージにあります。レンダリングまたはリダイレクトできるのは、アクションごとに 1 回だけです。

returnへの各呼び出しの後にストレートを追加してみてくださいrender

于 2013-04-18T11:17:17.097 に答える
0

あなたのロジックについては明確ではありませんが、複数renderまたはredirectアクションごとに呼び出すことはできません。慣例として、アクションの最後redirectまたは1 つだけを呼び出す必要があります。render

ただし、これにより、ロジックについてのアイデアが得られる場合があります。

@line_items.each do |i|
  product = i.product
  if ([product.foodio_price, product.delivery_price].include(i.price))
     #once of your prices
  else 
     #neither of your prices 
  end
end
于 2013-04-18T11:28:53.243 に答える