Ruby Rails - 保存vs更新where方法

时间:2012-04-16 12:48:58

标签: ruby ruby-on-rails-3

我正在尝试建立一个库存系统,我的表有索引" id"默认为主键。我的库存编号应该是唯一值以在表中创建新条目,如果库存已经存在则应更新属性。怎么办?将库存编号作为主键?或者有没有办法检查和更新已存在的库存?

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分: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,.....})