【问题标题】:ActiveRecord and Mogoid::Document : associationsActiveRecord 和 Mogoid::Document : 关联
【发布时间】:2010-11-03 19:17:50
【问题描述】:

我有一个基于 ActiveRecord 的模型和另一个基于 Mogoid::Document 的模型。可以一起做关联吗?

例如,2个模型:

class User < ActiveRecord::Base
  has_one :avatar, :dependent => :destroy
end

class Avatar
  include Mongoid::Document
  field :file_name
end

然后像这样检索用户的头像:

@user.avatar.file_name

谢谢!

【问题讨论】:

    标签: ruby-on-rails mongoid


    【解决方案1】:

    您将无法使用 ActiveRecord 关系。

    您仍然可以使用这样的实例方法链接这两个对象:

    class User < ActiveRecord::Base
    
      def avatar
        Avatar.where(:user_id => self.id).first
      end
    
      def avatar=(avatar)
        avatar.update_attributes(:user_id => self.id)
      end
    
    end
    

    将它封装在一个模块中会很有趣:)...

    【讨论】:

    【解决方案2】:

    使用坚韧宝石可以实现:https://github.com/jwood/tenacity

    我们已经在生产环境中使用它几个月了,效果很好。

    【讨论】:

    • 不再维护 :(
    【解决方案3】:

    实际上是在寻求相同的解决方案。写了这个https://rubygems.org/gems/mongo_mysql_relations 是为了让它更容易 - 但它与上面提供的解决方案基本相同,但手动操作更少。

    Github 位于 https://github.com/eladmeidar/MongoMysqlRelations

    【讨论】:

      【解决方案4】:

      不,这是不可能的。 ActiveRecord 期望关联到一个 AR 对象。以前可以将 Mongoid 与 AR 关联起来,但现在也不起作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多