如何在需要引用调用模型的相关模型中检索数据

时间:2012-08-01 19:11:09

标签: ruby-on-rails model

我有一个控制器和两个模型,一个用户和一个商店。 用户拥有多个商店。在商店里面我有一个方法get_items列出了项目。 get_items本身需要对用户的引用。 我现在所做的是以下

@items = user.stores.first.get_items(user)

这对我来说很奇怪,因为初始调用者必须将自己作为参数传递给get_items方法。 你会推荐什么?

最好的, 菲尔

1 个答案:

答案 0 :(得分:1)

如果您已经在两个方向上定义了关系,

class User < ActiveRecord::Base
  has_many :stores
end

class Store < ActiveRecord::Base
  belongs_to :user
end

然后您可以访问user实例中商店所属的Store。所以你应该能够写

def get_items
   do_something_with user
end

它应该使用正确的用户。然后可以调用get_items

@items = user.stores.first.get_items

我个人会将get_items重命名为items