私は、管理者、従業員、製造元、運送業者の4種類のユーザタイプを持つ在庫管理アプリケーションを構築しています。次のように製品と多対多の関連を通して:私はまだコーディング開始していないが、これは私が考えているものです。..メーカーとトランスポーターはhas_manyのと関連しているRuby on Railsにおける複数のユーザ役割
class Manufacturer < ActiveRecord::Base
has_many :products
has_many :transporters, :through => :products
end
class Product < ActiveRecord::Base
belongs_to :manufacturer
belongs_to :transporter
end
class Transporter < ActiveRecord::Base
has_many :products
has_many :manufacturers, :through => :products
end
すべての4つのユーザタイプがしますログインすることができますが、彼らは異なるアクセス許可やビューなどを持っています。私は同じテーブル(ユーザー)に置くことはできません、しかし、彼らは異なる要件を持っているので、つまり:ベンダーとメーカーは、請求先住所と連絡先情報(検証による)がありますが、管理者と従業員はこれらのフィールドを持つべきではありません。
可能であれば、私は4つの異なる画面ではなく、1つのログイン画面を持っていたいと思います。
私はこれを構築するための正確なコードを要求していませんが、それを実現させる最善の方法を決定することに問題があります。どんなアイディアも大歓迎です - ありがとう!
助けてくれてありがとう!これに対して、どのようにデータベーステーブルを設定し、特定のユーザータイプの基本クラスUserおよびSTIを使用しますか?私は本当に、本当に、レールに新しいです:) – aguynamedloren
あなたはデータベース内に 'users'テーブルしか持っていません。 STI /単一表継承は、基本表(この場合は「ユーザー」)の「タイプ」フィールドを使用して、基本クラスのサブタイプを区別します。移行でこのフィールドを追加する必要があります。その後、基本クラスのすべてのサブタイプのすべての属性は、たとえ特定のインスタンス/行によって使用されなくても、users表に保持されます。これは、STIパターンを使用した場合のトレードオフです。サブタイプ固有の属性の数に応じて、使用されていない属性のヌルフィールドがいくつかある場合があります。 –