0

我有一个应用程序,其中三个模型(Profile -> SubModel -> SubSubModel)链接在一起,有很多关系。我试图限制用户在登录后仅检索与其个人资料关联的记录。我对 Rails 很陌生,这是我在 Profile 模型中一直在尝试的

has_many :submodels, :conditions => {:profile_id => self.id}

但这在使用 Profile.find_by_id(1).submodels 调用时返回一个空数据集,我还能如何实现我想要做的事情。或者我应该在控制器或视图中处理这个问题,我认为这听起来很适合模型处理这个问题。

4

2 回答 2

1

has_many 调用不需要任何条件 - 默认情况下,它只会返回与配置文件关联的子模型。

于 2010-04-27T17:51:08.483 回答
0

如果您已将类和外键/主键命名为 Rails 约定,只需使用

class Profile
  has_many :sub_models
end

并让 Rails 弄清楚。

这假设如下:

  • Profile 包装了一个名为 的表profiles,该表有一个名为 的数字主键id
  • SubModel 包装了一个名为 的表sub_models,该表有一个名为 的数字外键profile_id
于 2010-04-27T17:52:30.243 回答