私は、次のテーブルで構成されたモデルに取り組んでいます:
- ユーザー
- 企業
- コメント(参加テーブル)
私が探している関係は:
- ユーザー
has_many
がコメントします。 - A社
has_many
コメント。 - A会社
has_many
ユーザー。 - ですが、ユーザは必ずしも
belongs_to
とは限りません。
ユーザーは基本的に、名前、姓などの情報を参照してログインすることができますが、ユーザーは単純な訪問者でも会社の従業員でもかまいません。
たとえば、ユーザは、現在belongs_to
の会社を割り当てることを選択できますが、必須ではありません。
APPROACH
私はこれを達成するための方法で考えていた:
が2つのユーザー表の作成、1は、例えば従業員他の1人の訪問者である可能性があります。しかし、あなたのステータスを変更するケースはカバーしていないようです。たとえば、belongs_to
をもう使用したくない場合、このアプローチは非効率的です。
または、ユーザーテーブルのブール値列を使用すると、"employee?", :boolean, default: false
です。私はどのようにこのthoを処理するか分からない。偽から真に切り替えてユーザーを会社に割り当て、その逆の方法は?
QUESTION
両方のステータス-visitorsを処理し、employees-と動的に別のカテゴリから切り替えるには1つのユーザーテーブルによる方法はありますか?事前
これはありがとう、私は範囲について考えています。フードの下で何が起こっているのかわからない:{where.not(location:nil)} –
申し訳ありませんが、スペルが間違っていました。 '{where(company:nil)} 'とちょうど反対の' {where.not(company:nil)}'でなければなりません。 –
それは私が思ったことです、編集のおかげで。だから、ユーザーのテーブル上のシンプルな会社の外部キーは、範囲のおかげで仕事をしますか?追加の結合表はありませんか? –