В ассоциациях между различными моделями можно избежать установки идентификаторов внешних ключей напрямую, используя имена приборов, как в этот ответ . Как насчет ассоциативных ссылок, например, при использовании acts_as_tree ? Попытка это:
# categories.yml
forsale:
name: For Sale
parent_id: nil
books:
name: Books
parent: forsale
Я получаю эту ошибку:
SQLite3::SQLException: table categories has no column named parent: INSERT INTO "categories" ("name", "parent") VALUES ('Books', 'forsale')
Есть ли способ заставить один прибор защищать другой в том же классе без использования явных идентификаторов?
Обновление:
Добавление имени класса в круглых скобках, как для полиморфных принадлежностей_ к , также не работает. Делаем это:
books:
name: Books
parent: forsale (Category)
Создает случайное parent_id
для books
вместо идентификатора forsale
.