我有一个模型,我在下面的ruby脚本中使用活动记录。像level_type,name,parent.id和pipcode这样的东西被分配给模型的属性以进入级别表。我的问题是,这只适用于新记录吗?你看,名字,parent.id和pipcode经常变化。每次这些值发生变化时,我都不希望它创建新记录。我希望用来自pipcode,parent.id等的新值来更新现有记录。
我的记录创建代码:
new_region = Level.new(
:level => level_type,
:name => name,
:parent_id => parent.id,
:make_code => pipcode
)
答案 0 :(得分:1)
当你调用new_region.save()时,Level.new(...)通常用于创建一个新行
如果要更新,首先需要通过调用以下内容来查找要更新的行:
# 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()