私は2つのクラスを持ち、どちらもOAuth 2ベアラアクセストークンを使用して同じサーバへのAPIコールを行います。私はこれらのクラスの両方からActiveRecordのコールバック機能を簡単に利用できるように、API関連のコードをモジュールにまとめようとしています。 コールクラスのデータにアクセスする方法(またはコールバックでパラメータとして渡す必要がある場合)を説明する場所が見つかりません。アクセスクラスActiveRecordコールバックのオブジェクトデータを外部モジュール
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
モジュールMのmy_method内からクラスCのデータにアクセスするにはどうすればよいですか?または私は完全に基盤から離れていますか?
あなたは問題を明確にすることができますか? 'C'に' M'を入れると、 'C'インスタンスは' my_method'を呼び出して自分の属性にアクセスできます。 –
NoMethodError(M:Moduleの未定義メソッド 'id '):' より具体的には、クラスに含まれる別のモジュール内にネストされたモジュールがあります –
JFYI、インデント用のRubyコミュニティ標準は2つのスペースです。 –