MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie kann ich Mongoid und ActiveRecord parallel in Rails 3 verwenden?

Was ich getan habe, war nur, die Beziehung zu Methoden sowohl im AR-Modell als auch im Mongoid-Modell so zu verspotten.

# visit_session.rb
class VisitSession
  include Mongoid::Document
  include Mongoid::Timestamps

  field :user_id, type: Integer
  index({user_id: 1},{name: :user_id_index})

  # Mock a belongs_to relationship with User model
  def user
    User.find(self.user_id)
  end
end

# user.rb
class User < ActiveRecord::Base

  # Mock a has_many relationship with VisitSession Mongoid model
  def visit_sessions
    VisitSession.where(user_id: self.id)
  end
end

Natürlich haben Sie nicht alle AR-Methoden des Mongoid-Modells von VisitSession, aber Sie können zumindest die Beziehung zwischen den beiden ziemlich gut nachahmen.

Hoffe das hilft.