3

Sorcery authenticationでRuby on Rails 3.2.8を使用しています。

サブユーザー アカウントを作成する最良の方法は何ですか?

理想的には、メンバーをメールで招待し、リンクをクリックしてユーザー名/パスワードを選択してもらいたいと考えています。同じログインページから全員がログインできるように、同じユーザーテーブル内でこれを行うことは可能ですか?

私がやろうとしていることに頭を悩ませているのは... 雇用主は従業員をシステムに追加/招待することができ、システムへのデータ入力は雇用主に属します。

4

1 に答える 1

1

個人的には、これを同じテーブルの関連付け列を持つ単一テーブル継承モデルとして処理します。

boss_idユーザーテーブルに呼び出されるフィールドを配置します。UserSorcery認証関連のものと一般的なロジックを備えたメインモデルがあります。その下にあなたが持っているEmployerEmployee。彼らにはboss:と呼ばれるメソッドがあります。雇用主の場合、これはselfまたはnil(最も意味のある方)を返しますが、従業員の場合、これは実際の関連付けメソッドであり、次のようなものです。

class Employee < User
  belongs_to :boss, class_name: 'User'

end

雇用主が招待状を送信するときは、次のように、雇用主に固有の招待状のURLに招待者を誘導します。

http://yoursite.com/employer/3/invitation

ユーザーが自分のアカウントを作成するとき、あなたはそれらを自分の所有する雇用主に関連付けます。

雇用主がデータを表示するときは、usersテーブルを結合テーブルとして使用して、子従業員のデータもプルするようにしてください。

class Employer < User
  has_many :employees, class_name: 'User', foreign_key: 'boss_id'

  has_many :contacts # Or whatever your application-specific stuff is 
    # that you want employers to see through their employees
  has_many :employee_contacts, through: :employees, source: :contacts
end

データベース内の雇用者に所有権を割り当てる必要がある場合は、オブザーバーを使用して所有モデルの保存を監視します。所有モデルが誰かによって保存されている場合は、bossその上司のIDに追加の列を設定します。

于 2012-12-28T07:20:33.270 に答える