OTO-Ohshima Tamashima Observatory-  Index  Search  Changes  Login

OTO - Ohshima Tamashima Observatory- - find_or_create Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

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-]]トップへ戻る

{{counter}}