我正在尝试创建一个库存系统,我的表默认将索引“id”作为主键。我的库存编号应该是唯一值以在表中创建新条目,如果库存已经存在,那么它将更新属性。如何做到这一点?通过将库存编号作为主键?或者有什么方法可以检查和更新已经存在的库存?
问问题
3860 次
2 回答
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'
于 2012-04-16T12:55:14.960 回答
0
这有效:rails 中的 create_or_update 方法
my_class = ClassName.find_or_initialize_by_name(name)
my_class.update_attributes({:street_address => self.street_address,.....})
于 2012-04-17T08:24:02.730 回答