問題タブ [rolify]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3016 参照

ruby-on-rails - rails: devise,cancan,rolifyでユーザーごとにロール名を取得する

ユーザーが特定の役割を持っているかどうかを簡単にテストできます

ユーザーの役割名を取得するにはどうすればよいですか? 何かのようなもの

ユーザーモデル

ロールモデル

0 投票する
1 に答える
980 参照

ruby-on-rails - Rails 3.2.13 + Faker + Devise + Rolify

テストアプリを作成していて、Faker gem で問題が発生しました:

私は Devise で Use モデルを作成し、Rolify gem を使用してロールを作成しました。その後、CanCan を使用してユーザーの使用権限を制限します。

そこで、Faker を使用して、rake タスク用のファイルを作成しました。

このコードは機能し、198 人のダミー ユーザーが作成されます...しかし、users_roles テーブルを調べたところ、何もありません。ユーザーにはロールが割り当てられていません。Faker を介してユーザーに役割を割り当てる方法を見つけようとしていますが、うまくいきません。

を追加しようとしましuser.role_id = User.add_role :userたが、うまくいきません。

前もって感謝します。

0 投票する
1 に答える
919 参照

ruby-on-rails - RailsでDeviseを使用して管理者/教師/学生のユーザーアカウントを整理する最良の方法は何ですか?

  • 管理者 = 完全な管理。CRUD の教師と生徒のアカウント。最小限のフィールド セット。
  • 教師 = 自分のアカウントの読み取り/更新。自分の学生アカウントを読む。よりユニークな分野。
  • 学生 = 自分のアカウントの読み取り/更新。より多くのユニークなフィールド。

認証 - Devise 認証 - CanCan、Rolify

ロールと能力を設定するために、Devise に CanCan と Rolify を組み合わせた単一の User モデルがあります。これは問題なく機能しますが、以下の最初の要件のために複雑になり始めます。これらのアカウントは非常に異なるフィールド セットと能力を持っているため、「役割」がこれらのアカウントを区別するための最良の方法であるかどうかはわかりません。

3 種類のユーザーに対して異なる Devise モデルを用意したほうがよいでしょうか? (これは 2 番目の要件によって複雑になります。) それとも、現在行っているように、すべてのユーザーを 1 つのモデルに保持し、役割と能力を割り当てるのがベスト プラクティスですか?

要件:

  • 異なるユーザー タイプには、そのユーザー タイプに固有の (必須の) フィールドがいくつかあります (つまり、生徒にはparent_name があり、教師にはありません)。
  • 統一されたログインフォームが必要で、ログイン資格情報からユーザータイプを検出し、これに基づいてユーザーをリダイレクトする必要があります。

これらの方法のいずれかを達成するための詳細に関して、ここでいくつかの回答を見てきましたが、どの方法が私のアプリケーションにより適しているかについてのアドバイスを探しています。Deviseに入れすぎていませんか?認証フレームワークにすぎないことを認識しています。個人属性用に別の User モデルを用意する必要がありますか?

あなたが言うことができないかのように-私はこれに不慣れで、まだ概念を理解しようとしています.

0 投票する
1 に答える
94 参照

ruby-on-rails - CanCan と Devise で特定のページを承認するには?

studentsCRUD メソッドを使用するためのリソースがあります。studentsリソースの読み取り、更新、管理などを行うことができるのは、特定の役割を持つユーザーのみです。私は自分のability.rbファイルでそれを指定しました。ただし、現在、学生 (通常はstudentsリソースにアクセスできない) が の出席記録のみにアクセスできるようにしたいと考えています/students/:student_id/attendances。どうすればそれを許可できますか?

0 投票する
1 に答える
237 参照

ruby-on-rails-4 - `rake db:seed` 使用時の非推奨警告

私はDEPRECATION WARNING使用するときに持っていますrake db:seed

これuser.add_role :adminは、以下のブロックで発生します。

find_or_create_by_email警告のコードを既にクリーンアップしましたが、 add_role.

0 投票する
0 に答える
595 参照

ruby-on-rails - Devise: user_id のロールの外部キー列

Rails Composer を使用して、Rails プロジェクトのスターター アプリを作成しました。役割の作成と管理にdeviseを使用しています

ユーザーには次の役割があります: 採用担当者、応募者 ユーザーは [採用担当者、応募者] のいずれかまたは両方を実行できます

User モデルを見ましたが、外部キーの role_id 列がありません。その列を自分で追加しましたが、次の問題に直面しています

1]アプリは、サインアップしたすべてのユーザーにrole_id = 1のみを割り当てます

2] 採用担当者と応募者の両方であるユーザーの場合、[ユーザー] 列に [1 と 2] の異なる ID を持つ 2 つの役割があるでしょうか。このモデルをどのように処理する必要がありますか?

これは私のユーザーモデルです:

0 投票する
1 に答える
473 参照

ruby-on-rails-4 - ユーザーの役割を確認するためにデータベースに対して多数のクエリを実行しないようにするには、これをどのように変更すればよいでしょうか?

最終更新: 2013 年 8 月 29 日 18:54 EST

次のモジュールを定義して、モデルに含めました。ユーザーに役割を与えるために roify gem を使用しています。

私が経験しているのは、次のことを行うときです...

返されるすべてのオファーについてロール テーブルを照会します。オファーのリストを要求するときに、この要求を繰り返し行わないようにする方法はありますか? データベースへのヒットを回避するために応答をキャッシュできると確信していますが、キャッシュにもヒットしない方がよいでしょう。

Rails コンソールを開いて次の操作を行うと、同じ結果が得られます。

Bullet gem をインストールして、N+1 クエリと見なされるかどうかを確認しましたが、検出されません。オファーの新しいインスタンスが作成されるたびに含まれているものが呼び出され、この呼び出しを開始して権限を確認するためだと思います。これは、rolify がそのユーザー ロール チェックを一定時間キャッシュしないという事実と相まって、これを理想的とは言えません。roify は、キャッシュのクリアに対処することなく、その場でロールを変更できるようにするためにこれを行うと思います。今のところ、これを解決する唯一の方法は、独自のキャッシュを実装することです。