【发布时间】:2011-03-02 17:27:39
【问题描述】:
if ClassName.exists?(["id = ?", self.id])
object = ClassName.find_by_name(self.name)
object.update_attributes!( :street_address => self.street_address,
:city_name => self.city_name,
:name => self.org_unit_name,
:state_prov_id => self.state_prov_id,
:zip_code => self.zip_code)
else
ClassName.create! :street_address => self.street_address,
:city_name => self.city_name,
:federalid => self.federalid,
:name => self.org_unit_name,
:state_prov_id => self.state_prov_id,
:zip_code => self.zip_code
end
我有这样的代码。我想改进它,让它使用一种方法,比如 create_or_update。
ClassName.create_or_update_by_name(:name => self.name,
:street_address => self.street_address,
:city_name => self.city_name,
:federalid => self.federalid,
:name => self.org_unit_name,
:state_prov_id => self.state_prov_id,
:zip_code => self.zip_code)
如果name 存在于数据库中,那么它应该更新该对象,否则它应该创建一个新对象。
有没有什么方法可以做到这一点?
【问题讨论】:
标签: ruby-on-rails ruby