Mongoid和ActiveRecord关系:未定义的方法`quoted_table_name’

class Contest  NoMethodError: undefined method `quoted_table_name' for ClaimTemplate:Class 

好的,我们将quoted_table_name添加到ClaimTemplate

 def self.quoted_table_name "claim_templates" end # console Contest.new.claim_template #=> nil # Cool! # But: Contest.last.claim_template #=> TypeError: can't convert Symbol into String 

那么如何配置我的模型以便彼此正常工作

PS:

现在我有这种结构,工作正常,但我希望获得关系( Assosiations )的好处。

 class Contest  self.id).first end # Mongoid going to be crazy without this hack def self.using_object_ids? false end end 

我不确定这是否已经正式实施。 关联主要通过ActiveRecord::Reflection来处理,它ActiveRecord::Reflection了关系表的概念,请参阅此类:

这表明ActiveRecord协会无法使用Mongoid之类的东西。

我建议构建一个gem来解决这个问题,方法是为Mongoid构建一个类似的reflection包装器,或者只是手动构建相关的对象。

有一个名为Tenacity的有趣gem似乎可以做你想要的,使用t_has_one,t_has_many和t_belongs_to而不是正常的关联。

因为它目前只有那些关系,所以它有点受限,我现在正在努力与多对多,但这可能会帮助你。

在这里查看 – https://github.com/jwood/tenacity