2013-04-18 7 views
0

저는 line_items라는 모델이 있습니다. 가격 필드가 포함되어 있습니다. 사용자가 가격을 입력하면 foodio_price 또는 delivery_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 

그것은 너무 많은 렌더링의 오류를 제공 또는 전화

+0

"작동하지 않음"정보가 충분하지 않습니다. – hdgarrood

+0

@hdgarrood 오류가 너무 많아 렌더링이나 리디렉션 호출을 추가하지 마십시오. – user2206724

답변

1

단서가 오류 메시지의 리디렉션 : 작동하지 않는

나는 아주 더러운 짓을 행동 당.

render을 호출 할 때마다 return을 곧바로 추가하십시오.

0

나는 그러나 당신이 행동 당 하나 이상의 render 또는 redirect를 호출 할 수 없습니다, 당신의 논리에 대해 명확하지 않다과 규칙으로 당신은 행동의 끝에서

그러나이 수도를 하나의 redirect 또는 render를 호출해야합니다 UR 논리에 대한 아이디어를 제공하십시오.

@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 
관련 문제