[前][次][番号順一覧][スレッド一覧]

rails:2355

From: 丸井啓至 <marui@a...>
Date: Mon, 03 Sep 2007 16:58:20 +0900
Subject: [rails:2355] Re: create時のidの値

Asai Arito さんは書きました:
> 浅井と申します。
>
> ActiveRecordの新規作成時に、auto incrementされる
> IDの値を用いて、同じオブジェクトの別の属性を決定したいのです。
>
> 最初、一旦saveしてから、idを取得して、属性を変更して再度save
> していたのですが、ここをコールバックを用いて書き直しています。
>
> after_createの中でidを取得して、再度saveすると無限呼び出しに
> なってしまいますよね?
>
> コールバックの中でのsaveで再度コールバックされないように
> するか、もしくは、before_saveの中でidをあらかじめ知る方法など
> はあるでしょうか?
>
> 前者であればフラグでコールバック中でreturnしてもよいのですが、
> コールバックが他にも呼び出しを持っているので避けたいです。
>
> よい知恵、私の調査不足な点がありましたらご教示ください。
> よろしくお願いします。

浅井さん、はじめまして。
データベースは何をターゲットとしているのでしょうか。
Railから逸脱しますが、浅井さんの問題は、データベースが、ストアド・プロシ
ジャとトリガーの機能を持っていたら実現は簡単です。PostgreSQLなら実装
されている機能ですし、MySQLも5.1以降なら実装されてたと記憶してます
が...


--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      2349 2007-09-01 16:41 [jyo555@w...         ] データーベースに接続できない            
      2350 2007-09-02 09:31 ┗[parin_25@m...       ]                                       
      2352 2007-09-02 17:28  ┗[jyo555@w...         ]                                     
      2353 2007-09-03 08:10   ┣[water@t...          ]                                   
      2362 2007-09-04 19:15   ┃┗[jyo555@w...         ]                                 
      2354 2007-09-03 08:44   ┗[arito_asai@f...     ] create時のidの値                  
->    2355 2007-09-03 09:58    ┣[marui@a...          ]                                 
      2356 2007-09-03 10:17    ┃┗[arito_asai@f...     ]                               
      2357 2007-09-03 10:23    ┣[bsdmad@g...         ]                                 
      2358 2007-09-03 09:58    ┗[t-makino@w...       ]