【问题标题】:Limit a user to view only associated records in rails限制用户仅查看 rails 中的关联记录
【发布时间】:2010-04-27 17:44:20
【问题描述】:

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

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

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

【问题讨论】:

    标签: mysql ruby-on-rails activerecord relational


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      class Profile
        has_many :sub_models
      end
      

      然后让 Rails 弄清楚。

      这假设如下:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-05
        相关资源
        最近更新 更多