多态 .find_or_create_by 与 mongoid 2.0.1,在嵌入式文档集合上?
在之前版本的 Mongoid (2.0.beta.20) 中,我可以传递一个类类型作为 嵌入式文档集合上 .find_or_create_by 块的第二个参数。 在 v2.0.1 中,情况似乎不再如此,但我仍然 需要进行多态find_or_create_by。任何建议/指示 如何做到这一点?
我曾经这样做过:
SomeClass.childclass.find_or_create_by({:key => "value"}, 继承子类)
现在我收到一个异常,说参数太多(2 for 1) 在 .find_or_create_by 上。
使用 find_or_create_by 时,如何告诉集合创建正确类型的对象?或者,我如何创建自己的方法,该方法在功能上与我想要的相同,并且可以在我的嵌入式文档集合中重复使用?
任何帮助表示赞赏。
谢谢。
in previous released of Mongoid (2.0.beta.20), I could pass a class type as the
2nd parameter of the .find_or_create_by block on embedded document collections.
this doesn't appear to be the case any more, with v2.0.1, yet I still
need to do polymorphic find_or_create_by. any suggestions / pointers
on how to do this?
I used to do this:
SomeClass.childclass.find_or_create_by({:key => "value"},
InheritingChildClass)
now I get an exception saying too many arguments (2 for 1)
on .find_or_create_by.
how can I tell the collection to create an object of the correct type, when using find_or_create_by? Or, how can i create my own method that will be functionaly equivalent to what I want, and be re-usable across my embedded document collections?
any help is appreciated.
thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我最终为此推出了自己的解决方案
I ended up rolling my own solution for this
不确定我是否真的理解您需要通知子类,但请检查以下要点: https://gist.github.com/ 960684
我确实搜索子类实例而不需要通知它。也许你的场景确实需要它,但如果需要,为什么不调用子类的find_or_create_by呢?
Not sure I really understood your need to inform the subclass, but check this gist: https://gist.github.com/960684
I do search subclass instances without needing to inform it. Perhaps your scenario really needs it, but if it does, why don't you call subclass's find_or_create_by?