Нестандартные имена рельсов / mongoid не работают - PullRequest
0 голосов
/ 09 февраля 2012

Я пытаюсь заставить настраиваемые имена отношений работать в Mongo.

"Коллаж" - это документ BSON, заполненный полями BSON, которые являются рабочими идентификаторами.Вот что в базе данных для «коллажа»:

Collage.create(slide_one: client.work.first.id, slide_two: client.work.second.id, slide_three: client.work.third.id)

Итак, коллаж - это монго-запись, полная рабочих идентификаторов.Я хотел бы иметь возможность написать @ collage.work_one или @ collage.slide_one.work_one или @ collage.slide_one.work, чтобы перейти к работе, которую я хочу.

Пользовательское именование этих ассоциаций оказывается бесплодным.До сих пор я пробовал две вещи:

Вот как, кажется, говорят делать это на веб-сайте Монго, но когда я настраиваю его и вызываю @ collage.work_one.inspect, я получаю ноль.http://mongoid.org/docs/relations.html (внизу страницы)

collage.rb

has_one :work_one, class_name: 'Work', inverse_of: :slide_one

work.rb

belongs_to :slide_one, class_name: 'Collage', inverse_of: :work_one

@collage.work_one.inspect буквально просто печатаетout "nil"

.

.

Я также попробовал

collage.rb

has_one :work_one, class_name: 'Work', as: :work_oneable

work.rb

belongs_to :work_oneable

Но это дает мне:

uninitialized constant WorkOneable

Любая помощь или идеи высоко ценится!

1 Ответ

1 голос
/ 09 февраля 2012

Я считаю, что ваше объявление класса является правильным (первое). Однако вы должны использовать реальные объекты вместо идентификатора при назначении полей, например:

Collage.create(slide_one: client.work.first, slide_two: client.work.second, slide_three: client.work.third)

Надеюсь, это поможет.

...