1

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

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

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

最好的,菲尔

4

1 回答 1

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_itemsitems.

于 2012-08-01T19:18:20.377 回答