2011-12-11 6 views
0

などのように、私は私の項目のモデル(非常に緩く)でいくつかのコードを持っている:セルフID、レコードが作成される前に - レール3

def author_id=(xyz) 
    book = Book.find_by_author_id(xyz) 
    book.author_id = self.id 
end 

self.idがが設定されていないようです、新しいレコードを作成する...任意のアイデア?

答えて

4

idは、データベースに保存した後にのみ記録するように設定されています。ここで単純なコールバックを追加することができます

0

新しいレコードを作成すると、オブジェクトがデータベースにまだ存在しないため、IDはまだ設定されていません。インスタンスメソッドnew_record?()でテストできます。

2

selfnew_record?(DBに保存されていない)の場合、まだIDがないため、このようなIDを割り当てることはできません。ただし、book.authorselfに設定することは可能です。

これがあなたのケースでない場合は、質問を少し指定することを検討する必要があります。

関連する問題