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而不是正常的关联。
因为它目前只有那些关系,所以它有点受限,我现在正在努力与多对多,但这可能会帮助你。