0

次のようにして、レコードを入力する前にデータベースを検索しようとしています。

Product.update_or_create_by_name_and_date_and_applicationURL_and_server_and_addi_servers(app_name, app_date,url_app,server_name,addi_servers)

問題は、未定義のメソッド例外が発生することです!

入力する前に同じレコードを検索する別の方法はありますか?

4

2 に答える 2

2

次の 2 つの手順を使用する必要があります。

#Suggestion 1
obj = Product.find_or_create_by_...


#Suggestion 2
obj = Product.find_or_initialize_by_...

obj.update_attributes hash_here

あなたの質問を再読すると、既知の属性を持つオブジェクトを見つけようとすると、何を更新したいのか本当にわかりません。とにかく、一部のフィールドが識別用であり、一部が更新用である場合、私の答えを少し調整する必要があります。

于 2012-09-04T19:50:48.977 に答える
0

私はあなたのモデルで関数を定義します:次のようなもの

Product.find_by_everything

ここでは、長い名前付け方法を使用する代わりに、検索のすべてのパラメーターを書き出します。

次に、それがnilを返す場合は、製品を作成します。これは、組み込みのactiverecord命名メソッドを使用する良いユースケースではないようです。

于 2012-09-04T20:47:01.270 に答える