5

このリンクでは、Railsは複数の属性でfind_or_createしますか?アクティブレコードで複数の属性を使用できます。

mongoidで属性以上のものを使用するにはどうすればよいですか?

ありがとうございました

4

3 に答える 3

6

lib / mongoid / finders.rbのソースを見ると:

# Find the first +Document+ given the conditions, or creates a
# with the conditions that were supplied.
    ...
# @param [ Hash ] attrs The attributes to check.
#
# @return [ Document ] A matching or newly created document.
def find_or_create_by(attrs = {}, &block)
    find_or(:create, attrs, &block)
end

{}find_or_create_byが最初の引数としてaを受け入れることがわかります。一度にいくつかの条件を渡すことができます

something.find_or_create_by(name: 'john', age: 20)

そしてそれは動作するはずです。

于 2012-08-16T11:19:05.620 に答える
1

クエリに関するmongoidドキュメントから:

Model.find_or_create_by

提供された属性でドキュメントを検索し、見つからない場合は、新しく永続化されたドキュメントを作成して返します。

于 2012-08-16T11:12:04.267 に答える
0

クリストファー、

私は最近同様の問題に遭遇し、mongoid gitリポジトリのソースを読んだ後、最終的にそれを理解しました:

mongoid 3.1.0の安定したブランチでは、これは機能します

    @new_object = NewObject.find_or_create_by(indexed_attribute: my_unique_value,
                                                        :attributeA => value,
                                                        :attributeB => value)
于 2014-02-21T04:37:15.200 に答える