鉴于课程
Class Apple < ActiveRecord::Base
belongs_to :vendor
end
Class Vendor < ActiveRecord::Base
has_many :apples
def do_something
#access apple instance here???
end
end
apple_var = Apple.find(1)
apple_var.vendor.do_something()
基本上,我需要能够从供应商内部的方法返回Apple实例。我尝试过:inverse_of,但似乎没有做我想要的。
我不确定如何描述我想要做得更好的事情。我知道我可以将自己传递给do_something方法,但感觉非常混乱。
答案 0 :(得分:0)
相反,您可以在Apple
类中定义此方法,因为Apple belongs to Vendor
您可以轻松获取与apple关联的供应商对象
Class Apple < ActiveRecord::Base
belongs_to :vendor
def do_something
# access vendor associated with apple here
end
end
apple_var = Apple.find(1)
apple_var.do_something
或强>
按照你的方式,你可以将apple id作为参数传递
Class Apple < ActiveRecord::Base
belongs_to :vendor
end
Class Vendor < ActiveRecord::Base
has_many :apples
def do_something(apple_id)
#access apple instance here???
end
end
apple_var = Apple.find(1)
apple_var.vendor.do_something(apple_var.id)
然后使用apple_id