2012-07-16 8 views
0

입니다. 사용자가 입찰 시스템과 같은 쿠폰을 입력하는 웹 사이트에서 다시 가격을 책정하는 데 필요한 코드에 문제가 있습니다.하지만 제안은 유효하며 유효 기간이 지나면 받아 들여지는 경우, 다시 시도하십시오.만들기 가격에 대한 예비 가격은

루비 레일에서 이것을 수행하는 방법에 대한 아이디어가 있습니까? 대부분의 코드는 사용자를 위해 작성되었습니다.이 부분 만 연구하기가 어렵습니다.

그래서 사용자는 유효성을 검사하기 전에 가격을 입력하는 입력 필드를 갖게됩니다.

답변

1

이 질문에 답하기 위해 비즈니스 개체에 대한 많은 정보를 제공하지 않으므로 몇 가지 가정을 할 것입니다. 내 가정은 다음과 같습니다 ItemBid : 당신은 이베이 클론을 만들고있어

  1. , 따라서 두 개의 관련 모델을 가지고있다.
  2. Item 수 많은 입찰
  3. Item는 속성, reserve_price이 (소수를?)는 Bid가 속성, amount (또한 소수)

있다

  • 을 만 만들려면 입찰가가 Item에 속하는 입찰가를 충족 시키려면 맞춤 검사기를 사용하는 것이 좋습니다. 이 작업은 모델에서 validate을 호출하고 모델의 유효성을 검사 할 때 호출 할 메서드의 이름 (기호로)을 전달하여 수행합니다. 그래서 같이 :

    class Bid < ActiveRecord::Base 
    
        belongs_to :item 
    
        validate :ensure_meets_reserve_price 
    
        private 
        def ensure_meets_reserve_price 
         if amount < self.item.reserve_price 
          errors.add(:amount, "does not meet reserve price") 
         end 
        end 
    
    end 
    

    는 기억이 귀하의 요구 사항에 대해 가정을 많이하고있다, 그러나 희망이 레일 '사용자 지정 유효성 검사기를 보여줍니다. 이 예에서 Bid으로 지정된 amountItem의 예약 가격을 충족하지 않으면 입찰가가 생성되지 않고 사용자에게 표시 할 수있는 오류 메시지가 표시됩니다.

  • +0

    답장을 보내 주셔서 감사합니다. 그것의 대학 프로젝트 :) 며칠 만에 만기가 될 것입니다! 그것 소비자가 우리의 위치에 가고 곳에 제품을 볼 수있는 그것, 예비 품목을 알지 않는 그 제품에 제안을하는 선택권이 있기 때문에 근본적으로 제품의 rrp가 우리의 가장 낮은 제안을 모르는 100 유로 인 경우에 그래서 그들은 55의 제안을합니다, 우리의 가장 낮은 가격은 60이므로 거부됩니다, 그들은 60의 제안을하고 받아들입니다 등 그들은 단 3 제공 등 사용할 수 있습니다. 많은 감사합니다! 인스턴트 메신저는이 부분을 파악하려고 노력했다! – user1529597

    +0

    기꺼이 도와 드리겠습니다. 이 작업과 모든 유사한 데이터 관련 작업은 컨트롤러가 아닌 모델에서 수행해야합니다. 그 컨트롤러를 마른 체형으로 유지하십시오. 프로젝트에 행운을 비네. –

    +0

    환호성 많은 appricated! 나에게있어서 어려운 부분은이 모든 모델들을 어디에 놓을지를 알아내는 것이다. 단지 몇주 만에 레일! – user1529597

    관련 문제