我們通過確保客戶有足夠的物品來運作來開始操作。因此,我們首先收集所有當前項目的數組:記錄沒有顯示在數據庫中
@items = SOrder.where(:user_id => current_user.id).order("order")
然後我們確定他們應該有多少物品。如果有人有免費賬戶,他們應該有5個項目。如果是付費帳戶,他們應該有20個項目:
if current_user.paid
should_have = 19 # one less than 20 because of 0 position in the array
else
should_have = 4
end
然後,在情況下,我們需要添加空白的記錄,我們計算出,我們應該開始:
if @items.empty?
start = 0
else
start = @items.length + 1
end
如果開始是少那麼我們添加空白記錄:
if start <= should_have
value = [start .. should_have].each do |v|
SOrder.create(:user_id => current_user.id, :order => v, :item_id => 0)
end
@items = SOrder.where(:user_id => current_user.id).order("order") # reload array
end
應該添加的記錄沒有顯示在數據庫中。 錯誤在哪裏?
同意在這裏,型號代碼>控制器代碼 – 2011-06-02 18:41:13
謝謝。我通常在控制器中工作,然後將部件移動到模型中。不知道爲什麼......猜測它只是一個壞習慣。 :=] – Jay 2011-06-02 21:03:56