0

データベースには多数の「プロジェクト」があり、各プロジェクトには多くの「デバイス」が関連付けられています。admin_users は 1 つ以上のプロジェクトに関連付けられています。データベース内のデバイスのリストを表示するリソースを登録しました。このリストは、プロジェクトでフィルタリングできます。

私がやりたいことは、ユーザーがログインしてデバイスのインデックス ビューに移動したときに、自分のプロジェクトに属するデバイスのみを表示できるようにすることです。これは、インデックス ビューを事前にフィルター処理することによって行われますか? もしそうなら、どうすればそれを行うことができますか? 問題にアプローチするより良い方法はありますか?

前もって感謝します!

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 に答える