繁体   English   中英

限制用户仅查看Rails中的关联记录

[英]Limit a user to view only associated records in rails

我有一个应用程序,具有链接在一起的三个模型(配置文件->子模型->子子模型),并且具有许多关系。 我试图将用户登录后限制为仅检索与其个人资料关联的记录。 我对Rails非常陌生,这就是我在Profile模型中尝试过的

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

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

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

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

class Profile
  has_many :sub_models
end

让Rails弄清楚。

这假定以下条件:

  • Profile包装了一个名为profiles的表,该表具有一个名为id的数字主键
  • SubModel包装了一个名为sub_models的表,该表具有一个名为profile_id的数字外键

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM