2011-10-27 15 views
0

ActiveRecordモデルの初期化をオーバーライドしようとしていますが、そこで何が起こっているのか分からないことがありました。私はこの初期化メソッドを書いた:ActiveRecordモデル属性を設定する

与えられたgenerate_contract_numberとDate.strptimeも同様に機能します。私の質問は:なぜ私はself.numberを行う=番号が設定されているとき、私は@番号=を行うときに番号が設定されていません。しかし、私は@ contract_date =と同じことをするだけで、self.contract_date =が自動的に設定されますか?

おかげ

答えて

2

のActiveRecordのinitializeを上書きしないでください。 after_initializeコールバックを使用してください。

詳細については、this SO postを参照してください。

@contract_dateについては何も表示されないので、あなたは何を意味するのか分かりません。モデルの定義がなければ、もっと言うことは難しく、@dataまたは@contract_dateが何であるか、あるいは「働く」ことが何を意味するのか分かりません。 ActiveRecordのDB属性は単純な@スタイルの属性ではないことに注意してください。

関連する問題