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!!!!!!

我在 rails v3.2.3 上看到了这种行为

4

1 回答 1

1

这是预期的行为,因为关联并不总是涉及 user_id 类型的列。如果您认为这应该引发错误,这可能更适合 rails github 问题页面或 rails 开发邮件列表。

于 2012-08-12T03:28:53.487 回答