0

私は現在、写真をアップロードするためのプロジェクトを行っています。ユーザー、アルバム、写真があります。フレンドシップ モデルを追加して、ソーシャル ネットワークのように友達同士ができるようにしました。ただし、表示しているページのユーザーがログインしているクライアントの友人であるかどうかを確認するためにビューに多くの情報を入れていることに気付き<% if current_user.friends.include?(@user) %>ました。そのため、特定の権限やフォームなどを持つことができます。 if/else ステートメントでビューを汚染するよりも、これを行うためのより良い方法または場所はありますか? また、誰かが常に手動で URL を入力し、想定されていない情報を台無しにする可能性があるため、私の方法はあまり安全ではないと思います。

4

2 に答える 2

2

CanCanなどの承認フレームワークが必要です。

アビリティファイルではcan、ユーザーが所有者の友人である場合にのみ、ユーザーが何かを表示したり、他のものを編集したりするように構成します。次に、ビューまたはコントローラーで、ユーザーが適切なアクションを実行する権限を持っていることを確認できます。

モデルの詳細 (つまり、所有者が現在のユーザーの友人であるかどうか) に基づく機能の設定に関する具体的な詳細については、このドキュメントに移動し、「条件のハッシュ」を探してください。

于 2012-10-22T02:32:50.913 に答える
1

モザイクアクセスgemのようなものを使用することを検討してください。これにより、現在ログインしているユーザーのコントローラーと特定のアクションをホワイト/ブラックリストに登録できます。

于 2012-10-22T02:47:45.357 に答える