2013-09-23 92 views
1

我'製作一分錢拍賣網站,我希望拍賣在模型中計劃時開始,那麼最好的方法是什麼? 我應該嘗試延期工作還是有更好的方法?拍賣在特定時間開始

+0

從我所知道的情況來看 - 像delayedjob這樣的東西就是你正在尋找的解決方案。這是一個非常普遍的答案 - 但是,那麼,你的問題是非常一般的:) 我建議 - 去看看如何設置延遲的工作,並給它一個去 - 做一個概念驗證。然後,你會很清楚延遲工作是否適合你的需要......並且你對它的工作方式或工作方式有更好的瞭解......這意味着你可以回來給我們一個更具體的問題。 –

回答

0

從你所說的話來看,我認爲你根本不需要背景工作。

請記住,您需要在控制器和視圖中工作。僅在視圖中隱藏出價按鈕是不夠的,您還需要阻止控制器上的出價。

在控制器中,只是做這樣的事情:

def create 
    if Time.zone.now > @auction.start_datetime && Time.zone.now < @auction.end_datetime 
    @bid = Bid.new(params[:bid]) 
    respond_to do |format| 
     if @bid.save 
     format.html { redirect_to @bid, notice: 'Bid was successfully created.' } 
     else 
     format.html { render action: "new" } 
     end 
    end 
    end 
end 

這大概也是很好的做法,一旦控制器後@ auction.end_datetime命中,設置在模型中的「關閉」屬性,以確保服務器中的時鐘更改不會重新打開已關閉的拍賣。

+0

我猜測拍賣需要開始,無論是否有人去看它,從而擊中服務器。例如,可能需要向所有觀察者發送電子郵件,說明拍賣已經開始......即使沒有人正在查看拍賣,這也需要在預定的時間完成。 –

+0

@TarynEast也許,因爲我使用rails 4.0,我可以嘗試websocket實時拍賣? –

+0

嗨@CrazyBarney - 我不知道答案...我只知道上述解決方案不會給你你需要的東西。 –