我正在尝试让自定义关系名称在Mongo中工作。
"collage“是一个用BSON字段填充的BSON文档,BSON字段是工作Ids。下面是数据库中关于“拼贴”的信息:
Collage.create(slide_one: client.work.first.id, slide_two: client.work.second.id, slide_three: client.work.third.id)因此,拼贴画是充满工作Ids的mongo记录。我希望能够编写@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_onework.rb
belongs_to :slide_one, class_name: 'Collage', inverse_of: :work_one从字面上看,@collage.work_one.inspect只是打印出"nil“
。
。
我也试过了
collage.rb
has_one :work_one, class_name: 'Work', as: :work_oneablework.rb
belongs_to :work_oneable但这给了我:
uninitialized constant WorkOneable任何帮助或想法非常感谢!
发布于 2012-02-09 08:09:21
我相信你的类声明是正确的(第一个)。但是,在分配字段时,您应该使用实际对象而不是id,如下所示:
Collage.create(slide_one: client.work.first, slide_two: client.work.second, slide_three: client.work.third)希望这能有所帮助。
https://stackoverflow.com/questions/9201263
复制相似问题