Установка идентификатора собственной ссылки при создании с использованием активной записи - PullRequest
0 голосов
/ 01 декабря 2011

Используя рельсы и активную запись, возможно ли установить идентификатор для собственной ссылки при создании?

Я сталкиваюсь с проблемой, когда человек является их собственным руководителем. Я хотел бы установить поле supervisor_id в операторе создания для этого человека.

class Person < ActiveRecord::Base
  belongs_to :supervisor, :class_name => "Person", :foreign_key => "supervisor_id"
  ...

Person.create(:name => "John Smith", :supervisor => ?self?)

С точки зрения mysql, я не вижу, как это возможно в одном запросе. У рельсов есть встроенный способ сделать это? Мой текущий план - флаг и после создания.

1 Ответ

1 голос
/ 01 декабря 2011

Поскольку идентификаторы не назначаются до тех пор, пока объект не будет создан, самым чистым способом сделать это в рельсах является обратный вызов after_create.

Возможно, вы сможете выполнить триггер mysql, если хотите стать действительно продвинутым ... но это кажется больше проблем, чем стоит.

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