2013-04-10 62 views
0

我有一個模型,我在下面的ruby腳本中使用活動記錄。諸如level_type,name,parent.id和pipcode之類的東西被分配給模型的屬性以進入關卡表。我的問題是,這隻適用於新紀錄嗎?你看,名稱,parent.id和pipcode經常變化。每當這些值發生變化時,我都不希望它創建新記錄。我想它用新值從pipcode進來,parent.id等更新現有記錄..ActiveRecord中的model_name.new()是否僅創建新記錄或更新現有

我的記錄創建代碼:

  new_region = Level.new(
      :level => level_type, 
      :name => name, 
      :parent_id => parent.id, 
      :make_code => pipcode 
     ) 

回答

1

Level.new(...)通常使用當你調用創建一個新的行new_region.save()

如果要更新,首先需要通過調用像找到你想要更新的行:

# if patient_id is the primary key 
existing_region = Level.find(patient_id) 

在這一點上, ÿ你可以更新existing_region的參數並調用.save()來更新數據庫。

existing_region.level = level_type 
existing_region.name = name 
... 
existing_region.save() 
相關問題