2015-06-26 36 views
0

對Ruby來說很新,我在執行某些邏輯時遇到了問題 我有很多日期(生效日期和到期日期)。 我也有2個對象。原始對象和新複製對象(它是原始副本)Ruby - 片數組和複製日期值

我想遍歷每對日期,並檢查orignal對象日期字段以查看ti是否有任何日期字段。如果它確實有日期,然後我到:

  • 使用原始對象到期日爲新的對象生效日期
  • 默認情況下,新對象截止日期到新的生效日期+1年

這裏是我的代碼,我得到這個錯誤:

undefined method `id' for nil:NilClass 

CODE:

DATE_FIELDS = [:agency_effective_on, :agency_expire_on, 
         :field_effective_on, :field_expire_on, 
         :product_manager_effective_on, :product_manager_expire_on, 
         :officer_effective_on, :officer_expire_on, 
         :regional_officer_effective_on, :regional_officer_expire_on] 

    @copy_to = @copy_from.dup 

    DATE_FIELDS.each.slice(2) do |field| 
       if [email protected]_from.send(field[0].to_sym).nil? #if the ORIGNAL date is not nil 
       #copy it to the new Objects dates 
       @copy_to.send("#{field[0]}=".to_sym, @copy_from.send(field[0])) 
       @copy_to.send("#{field[1]}=".to_sym, @copy_from.send(field[1]).to_date + 365) 
       end 
      end 
+0

你的代碼是否有效?這段代碼似乎無效: 'DATE_FIELDS.each.slice(2)do | field |' –

+0

這是無效的嗎?我在那裏犯了一個錯誤? – user3437721

+0

它應該是each_slice我認爲,我將不得不糾正,並在我的邏輯工作.. – user3437721

回答

0

好的,我有each.slice而不是each_slice