0

データを効果的に「フェデレーション」するログインした「ユーザー」のアイデアをどのように紹介すべきかについて、いくつかのアイデアがあるかどうかを確認します。説明させてください。

私はこれまで、ユーザーが1人だけであるかのようにアプリを作成してきました。自分。すべてのデータとレポートは私に固有のものです。authlogicを追加しました。

新しいユーザーがログインし、自分のデータを表示せずに、アプリケーションを使用する方法を紹介できるようにしたいと思います。そして最終的にはシステムを使用するために支払う。

これまでのところ、モデルにアクセスして、ほぼすべてのモデルにuser_idを追加してから、すべてのコントローラーに移動してユーザーで検索する必要があると想定しています。

しかし、各ユーザーのデータを統合するためのより良い方法の宝石、提案、アイデアがあるかどうか疑問に思っています。

ああ...複数のユーザーが別のユーザーに属するデータの一部またはすべてにアクセスできるようにしたい場合があります。これは、共有したい営業担当者の小さなチーム向けです。

だから...私が自分の周りをいじくり回す前のアイデア...ありがとう:)

4

2 に答える 2

2

あなたは正しい考えを持っています。ユーザーとデータモデルの間に関係を築く必要があります。単純なbelongs_to :user場合もありますが、複数のユーザーが特定のデータにアクセスできるようにする場合は、多対多の関係にする必要がありますhas_and_belongs_to_many :users

次に、データのフェッチ方法を変更するだけです。

# Some controller, no restrictions
def index
  @reports = Report.all
end

def view
  @report = Report.find(params[:id])
end

# Some controller, with restrictuons
def index
  @reports = current_user.reports.all
end

def view
  @report = current_user.reports.find(params[:id])
end

上記のロジックを使用すると、ユーザーには、関係のあるデータのみが表示されます。

間違いなく、ほとんどのアプリケーションをすでに作成している場合は、少し手間がかかるでしょう。本当に、本当に、本当に注意しなければならないのは、脆弱性につながる可能性があるため、何も残しReport.allたり、横になったりしないことです。ユーザーは、実際には自分のものではないデータにアクセスできるようになります。Report.find(params[:id])

于 2010-10-16T12:31:06.640 に答える
0

あなたが話しているのはACL(アクセス制御リスト)と呼ばれています。Railsには、作業の大部分を実行するプラグインがいくつかあります。グーグルで周りを見て、あなたのニーズに合ったものを見つけることができるかどうか見てください。

編集:ざっと見てみると、Acl9は最も人気のあるRails3互換のもののようです。

于 2010-10-16T06:36:16.627 に答える