1

在庫システムを作成しようとしています。私のテーブルには、デフォルトで主キーとしてインデックス「id」があります。テーブルに新しいエントリを作成するには、在庫番号が一意の値である必要があります。在庫が既に存在する場合は、属性が更新されます。どうやってこれを行うのですか?在庫数を主キーにして?または、インベントリが既に存在することを確認して更新する方法はありますか?

4

2 に答える 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 に答える