Ничего себе, я боролся с этим целый день, следуя «официальному» документу ruby on rails guides, и только что обнаружил, что я все время ошибался этим документом. Я просто хочу подтвердить, правда ли это.
Если вы перейдете на http://guides.rubyonrails.org/association_basics.html и под 2.10. Сам присоединяется к разделу, где написано:
class Employee < ActiveRecord::Base
has_many :subordinates, :class_name => "Employee"
belongs_to :manager, :class_name => "Employee",
:foreign_key => "manager_id"
end
Теперь я новичок и просто поверил в этот код (что еще я могу сделать?) И написал некоторый код, который является вариантом этого случая самостоятельного соединения. Однако чем больше я смотрел на него, тем больше он не чувствовал себя хорошо. не должно ли :subordinates
иметь поле :foreign_key
вместо :manager
? Во всяком случае, я просто изменил его, чтобы код был что-то вроде:
class Employee < ActiveRecord::Base
has_many :subordinates, :class_name => "Employee", :foreign_key => "manager_id"
belongs_to :manager, :class_name => "Employee"
end
и теперь это работает. Я что-то пропустил? Или официальный документ неверен? Трудно поверить, что официальный документ содержит неверную информацию, но, возможно, так оно и есть.