2012-02-08 34 views
0

我試圖讓自定義關係名稱在Mongo中工作。定製導軌/ mongoid關係名稱無法正常工作

「拼貼畫」是BSON文檔,填充了工作ID的BSON字段。這裏是什麼在數據庫中的「拼貼畫」:

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

所以,拼貼是mongo記錄充滿工作ID。我希望能夠編寫@ collage.work_one或@ collage.slide_one.work_one或@ collage.slide_one.work來完成我想要的工作。

對這些關聯進行自定義命名是徒勞的。到目前爲止,我已經嘗試了兩件事:

這似乎是在mongo網站上這麼說的,但是當我設置並調用@ 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真的只是打印出 「無」

我也試過

collage.rb

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

work.rb

belongs_to :work_oneable 

但是,這給了我:

uninitialized constant WorkOneable 

任何幫助或想法大加讚賞!

回答

1

我相信你的類聲明是正確的(第一個)。但是,您應該在分配字段時使用實際對象而不是id,如下所示:

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

希望有所幫助。

+0

謝謝!我沒有結束這樣做,但我會把你的回覆放在我的記憶庫中以便以後使用:) – Nick 2012-02-10 15:36:57