OTO-Ohshima Tamashima Observatory-  Index  Search  Changes  Login

find_or_createでは:order=>が効かない

rails2.3

データベースに、同じ「knumber」と言うコラムの値をを持ったデータが複数ある場合に、 最新の入力データを得たいとする。そして該当データがない時には新規にデータを作成したいとする。 このような時、Railsではfind_or_createという一度に処理てくれる便利なメソッドがあるので、それを使おうとしたが、 次のように書くと、一番古いデータが表示されてどうしてもうまくいかない

@ki=KigyoInfo.find_or_create_by_knumber( kbango, :order=>'input_date DESC')

find_or_createでは:order=>'input_date DESC'が効かないことが、 ./script/consoleを使って調べるとわかった。 しかたがないので、次の様にひとつづつ記述した

@ki=KigyoInfo.find_by_kigyo_number( kbango, :order=>'input_date DESC')
if @ki==nil then @ki=KigyoInfo.new(:knumber=>kbango ) end

技術的な覚書きへ戻る

OTO-Ohshima Tamashima Observatory-トップへ戻る

733
Last modified:2011/07/05 14:08:24
Keyword(s):
References:[技術的な覚書き]