0

次の質問は、私が必要としているものとほぼ同じです: https://stackoverflow.com/a/2394783/456188

以下を実行したいと思います。

find_or_create_by_person_id(:person_id => 10, :some_other => expensive_query)

しかし、もっと重要なことは、実際にオブジェクトを作成する必要がexpensive_query ない限り、 の実行を延期したいということです。

find_or_create_by でそれは可能ですか?

4

1 に答える 1

1

Turns out find_or_create_by* accepts a block that only gets run in the create case.

find_or_create_by_person_id(10) do |item|
    item.some_other = expensive_query
end
于 2013-04-12T14:58:54.427 に答える