2012-04-16 75 views
1

我想做一個庫存系統,我的表默認情況下索引「id」是主鍵。如果庫存已經存在,我的庫存號應該是唯一值,以在表中創建新條目,然後它應更新屬性。這是怎麼做到的?通過將庫存號碼作爲主鍵?或者有什麼方法可以檢查和更新庫存已經存在?Ruby Rails - 保存vs更新的方法

回答

0

這工作:create_or_update method in rails

my_class = ClassName.find_or_initialize_by_name(name) 

my_class.update_attributes({:street_address => self.street_address,.....}) 
2

您可以擁有唯一的字段number(例如)。比你可以使用find_or_create_by_<field_name>髒方法。

@ticket = Ticket.find_or_create_by_number(503) 

更新時間:

@ticket.attrib = 'new attribute value' 
@ticket.save 

@ticket.update_attribute :attrib, 'new attribute value' 
+0

感謝ck3g!此方法是否也更新現有記錄? – 2012-04-16 12:59:13

+0

如果Ticket已經存在,那麼只需抓住它。如果不存在,則創建。之後你可以使用update_attribute,保存等。 – ck3g 2012-04-16 13:05:03