0

在我的数据库中,我有许多“项目”,每个项目都有许多与之关联的“设备”。admin_users 与一个或多个项目相关联。我已经注册了一个显示数据库中设备列表的资源。此列表可以按项目过滤。

我想做的是确保当用户登录并进入设备索引视图时,他/她只能查看属于他的项目的设备。这是通过预过滤索引视图来完成的吗?如果是这样,我该怎么做?有没有更好的方法来解决这个问题?

提前致谢!

4

1 回答 1

0

我不认为过滤器适合这样做。我会在控制器中设置正确的@devices 实例变量来做到这一点

class DevicesController < ApplicationController
  def index
    @devices = current_admin_user.devices
  end
end

如果您的 admin_user 不了解设备,您可以执行以下操作

class AdminUser < ActiveRecord::Base
  has_many :projects
  has_many :devices, :through => :projects
end

这对你有用吗?

于 2012-07-11T01:51:23.473 回答