Ich habe zwei Klassen, beide API-Aufrufe an den gleichen Server mit einem OAuth 2 Bearer Access Token. Ich versuche, den API-bezogenen Code in ein Modul einzubinden, damit ich die Callback-Funktionalität von ActiveRecord aus diesen beiden Klassen einfach nutzen kann. Ich kann nirgends finden, dass beschreibt, wie auf die Daten der aufrufenden Klasse zuzugreifen (oder wenn ich es als ein Parameter mit dem Rückruf übergeben muss).Access Classes Objekt Daten von ActiveRecord Callback zu externen Modul
module M
BASE_URL = 'www.googleapis.com'
TOKEN = *generated oauth token*
module N
def my_method
print("id: #{C.id}")
print("fname: #{C.f_name}")
print("lname: #{C.l_name}")
print("address: #{C.address}")
end
end
module O
def my_method
#assume this does something different from module N
print("id: #{D.id}")
print("fname: #{D.f_name}")
print("lname: #{D.l_name}")
print("address: #{D.address}")
end
end
end
class C
include M
attr_accessible :id, :f_name, :l_name, :address
after_create N::my_method
end
class D
include M
attr_accessible :id, :f_name, :l_name, :address
after_create O::my_method
end
Wie würde ich mich über die Klasse C die Daten aus Modul M my_method zugreifen? Oder bin ich komplett von der Basis entfernt?
Können Sie das Problem klären? Wenn Sie "M" in "C" einfügen, können 'C' Instanzen' my_method' aufrufen und haben Zugriff auf ihre eigenen Attribute. Ich weiß nicht, ob ich die Frage verstehe –
Ich bekomme ein 'NoMethodError (undefinierte Methode 'id' für M: Module): ' Genauer gesagt, habe ich ein Modul in einem anderen Modul geschachtelt, das in der Klasse –
JFYI enthalten ist, Ruby Community Standard für den Einzug ist zwei Leerzeichen. –