0

複数のデバイスモデルを使用しても大丈夫なのはいつですか?

私には、ユーザー、ベンダー、管理者の3種類のユーザーがいます。ベンダーはユーザーよりも多くのフィールドを持っているので、それらのために別々のテーブルを用意したいと思います。ユーザーはFacebookを使用してサインアップおよびサインインできます(ベンダーはできません)。また、ユーザーとベンダーは同じサインインページ/フォームを共有します。

私は複数のデバイスモデルから始め、シングルサインインページの処理方法に混乱しました。次に、個別モデルの代わりにポリモーフィックアソシエーションとSTIを使用する方法について多くのことを読みました。それぞれのアプローチをいつ使用すべきか、そしてここで何がうまくいくかについてはまだ混乱しています...私はそれが少し曖昧であることを知っていますが、アドバイスは素晴らしいでしょう、または良いリンクです。

また、ユーザーはサインアップ時に、Facebookを介してでも、多数の追加フィールドに入力します。omn​​iauthログインのこれらのフィールドを追跡するにはどうすればよいですか?(そして、これまたはomniauthidentityのようなものにdeviseを使用する必要があります..?)

これを見てくれてありがとう!私は初めて認証を設定するレール初心者です、本当に助けに感謝します

4

1 に答える 1

1

場合によっては、単一のモデルを分離または使用することをお勧めします。代替案:

  1. 別のモデルを使用し、コントローラーをオーバーライドして、最初にユーザーのレコードが一致するかどうかを確認し、一致しない場合はベンダーで試してください
  2. ユーザーとベンダーを格納するために単一のモデルを使用し、ブール値(ポリモーフィックな関連付けの場合は文字列)を使用してユーザーの種類を確認し、関連するモデルを追加して追加のフィールドを格納します

オプション#1は簡単ですが大きく、オプション#2は少し難しいですが短いと思います。

また、ユーザーはFBとベンダーに接続するため、モデルを分離することをお勧めします。これは多くの違いを表しています。

別の方法では、オプション#2を使用すると、クエリが1つだけになるため検索が高速になり、ユーザーとベンダーの特定のフィールドが含まれないため、テーブルが軽くなります。また、決定を下すためにこれを考慮する必要があります。

管理者の場合、同様の基準に従うことができます。

これをチェックしてください:https ://github.com/mkdynamic/omniauth-facebook

于 2012-12-20T07:56:44.453 に答える