0
  1. ユーザーと連絡先があります。
  2. ユーザーは自分のアカウントにサインインし、連絡先を追加するアドレス帳を作成できます。
  3. 彼らが連絡先と何かを共有している場合、その連絡先はそれを表示するためにログインする必要があります。

ユーザーはデータベース(usersテーブルに格納されている)で一意であり、連絡先は連絡先テーブルに格納されており、特定のアドレスブックごとにのみ一意です。

私は現在、ユーザー向けにSorcery gemを使用していますが、これはうまく機能しています。ただし、これを拡張して、連絡先がログインするための認証をサポートするにはどうすればよいですか?

STIまたは多形セットアップを介してこれを行うことについて少し読みましたが、このようなものの一般的なパターンが何であるかは不明です。

両方のモデルにソーサリーを使用させることはできますか?それともアンチパターンですか?

前もって感謝します!

4

1 に答える 1

1

連絡先に別のモデルを使用しているのはなぜですか?次のような自己参加を設定してみませんか。

has_many :contact_entries, :class_name => "ContactEntry"
has_many :contacts, :through => :contact_entries

ユーザーテーブルは同じように見えますが、次のような結合モデルがあります。

class ContactEntry < ActiveRecord::Base
  belongs_to :user
  belongs_to :contact, :foreign_key => "contact_id", :class_name => "User"
end

これには、user_idフィールドとcontact_idフィールドがあります。

アップデート

さて、私はあなたの問題を今見ています。少なくとも魔術自体に大幅な編集を加えなければ、これは魔術では不可能だと思います。Sorceryは、ファイルinitializer.rbで単一の認証可能なモデルを定義します。

ただし、Authlogicは、「acts_as_authentic」を介して任意のモデルに組み込むことができるため、ニーズに対するもっともらしいソリューションです。欠点は、authlogicが積極的に開発されていないように見えることです。10日前はかなりの活動があったので、一見の価値があります。

于 2012-06-11T16:39:19.090 に答える