3

Belongs_toアソシエーションの場合、テーブルに対応する外部キーがなくても、railsを使用してアソシエーションを設定できるようです。これは予想される動作ですか?

次の状況を参照してください。

$> rails new mynewapp
$> cd mynewapp
$> rails g model User
$> rails g model Whatever
$> rake db:migrate

#user.rb
belongs_to :whatever

$> rails c
   u = User.new
   u.save
   w = Whatever.new
   w.save
   u.whatever = w
   u.save #no error!  

   u.whatever               #=> w(Whatever)
   u.reload                 #=> w(Whatever)
   User.find(u.id).whatever #=> nil!!!!!!

Railsv3.2.3でこの動作が見られます

4

1 に答える 1

1

アソシエーションには必ずしもuser_idタイプの列が含まれるとは限らないため、これは予想される動作です。これでエラーが発生すると思われる場合は、railsgithubの問題ページまたはrails開発メーリングリストに適しています。

于 2012-08-12T03:28:53.487 に答える