2014-09-24 59 views
0

我有兩個型號的[田]:軌道4創建相關對象之後,保存

令[:日期] 輸出槽[:一天]

訂購belongs_to :delivery_slot

當訂單創建,我想要創建一個交貨插槽:day設置爲訂單:date

到目前爲止,我已經創建了創建時的順序是創建輸出槽訂單控制器的新方法create_delivery_slots,但在這裏我很爲難的,我如何才能在輸出槽:day領域的訂單:date

#Create delivery slots if they dont already exist 
def create_delivery_slots 
    existingslots = [] 
    existingslots = DeliverySlot.all.select {|slot| slot.day == @order.date} 
    if existingslots.empty? 
    slot = DeliverySlot.new(:day => @order.date) 
    slot.save! 
    end 

我試過多種方法,但沒有運氣。我的直覺告訴我,它與強參數有關,但我無法弄清楚...

回答

0

我不確定你是如何設置的,但你可能會想要這樣的東西:

class Order < ActiveRecord::Base 
    has_a :delivery_slot 
    after_create => :create_delivery_slots 
    . 
    #other code stuffs 
    . 
    . 
    private 

    def create_delivery_slots 
    existingslots = [] 
    existingslots = DeliverySlot.all.select {|slot| slot.day == self.date} 
    if existingslots.empty? 
     slot = DeliverySlot.new(:day => self.date) 
     slot.save! 
    end 
    end 
end 

這是未經測試,但它應該基本上是你需要的。

+0

謝謝米卡,這確實會創建一個新的交付槽記錄。但新記錄爲空 - 「:」的值尚未設置。 – blackfish64 2014-09-24 22:09:30

+0

@ blackfish64那麼你很有可能沒有及時設定訂單的日期。唯一可以想到的是,DeliverySlot沒有日期。 – MCBama 2014-09-26 14:27:36

+0

還請確保您使用'self.date'而不是'@ order.date' – MCBama 2014-09-26 15:15:21