Active und Mogoid :: Dokument: Verbände
-
28-09-2019 - |
Frage
Ich habe ein Modell, das auf Active und ein anderer auf der Grundlage eines Mogoid :: Dokument. Ist das möglich, einen Verein zusammen zu tun?
Um zum Beispiel der 2 Modelle:
class User < ActiveRecord::Base
has_one :avatar, :dependent => :destroy
end
class Avatar
include Mongoid::Document
field :file_name
end
Und Abrufen des Benutzer Avatar wie folgt aus:
@user.avatar.file_name
Danke!
Lösung
Sie werden nicht in der Lage sein Active Beziehungen zu verwenden.
Sie können immer noch die beiden Objekte verknüpfen Instanz Methoden wie folgt aus:
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
Es wäre interessant, diese in einem Modul zu kapseln:) ...
Andere Tipps
Es ist möglich, mit dem Tenacity gem: https://github.com/jwood/tenacity
Wir haben es in der Produktion für ein paar Monate mit und es funktioniert sehr gut.
War eigentlich nach der gleichen Lösung. dies schrieb https://rubygems.org/gems/mongo_mysql_relations , um es einfacher zu machen - aber es ist im Grunde die gleiche Lösung wie oben angeboten, aber weniger Handbuch.
ist Github unter https://github.com/eladmeidar/MongoMysqlRelations
Nein ist es nicht möglich. Active ist der Verband erwarten ist mit einem AR-Objekt. Sie verwendet werden können Mongoid zu AR beziehen, aber es funktioniert auch nicht jetzt arbeiten.