Rails 3 - модель с отношением один к одному с собой - нужно ли мне принадлежать - PullRequest
4 голосов
/ 19 июля 2011

У меня есть модель с именем Person. У него есть два свойства - name и parent_person_id

У человека всегда будет родитель.

Должен ли я использовать принадлежащее в модели? Если да, то каковы преимущества этого.

class Person < ActiveRecord::Base
    belongs_to :person
end

Я еще не пробовал этот код, он кажется немного неправильным в моих обычных способах mysql.

Я ищу мнения здесь больше всего на свете, я довольно новичок в рельсах и хочу убедиться, что я делаю вещи правильно, делаю вещи "в стиле Rails".

Ответы [ 2 ]

9 голосов
/ 19 июля 2011

Я бы предложил использовать камень типа родословная для такой древовидной структуры. Это дает вам вашу ассоциацию плюс множество полезных методов (поиск родителя, детей, братьев и сестер, получение поддерева).

Если вы этого не хотите, то в вашей ассоциации принадлежащих вам должно выглядеть так:

belongs_to :person, :foreign_key => "parent_person_id"

, поскольку без этой опции rails будет искать внешний ключ person_id и, не обнаруживая этого, загорает ваш процессор в огне выдает сообщение об ошибке.

0 голосов
/ 19 июля 2011

Да, вам понадобится принадлежат_ , поскольку именно это и скажет рельсам об этих отношениях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...