1
私はレールに新たなんだ

と私はこのような厳しい説明 - Railsは4

目的を見つけていてあなたの助けとアドバイスをいただければ幸いです。私は、イベントの作成者ができるようにしたいです作成したイベントのホストとして ホストとして複数のユーザーを選択します(作成したページの管理者として のページを作成できるようにする方法と同じです)。私のモデルとスキーマをどのように表示すべきですか?

私はこのイメージのようなものを構築しようとしていました。私はホストとしてイアン&ジェシーを選択することができますイベント1、イベント2私もホストとして再度イアンを選択し、選択することができエマは

enter image description here

これは、私はそれがこれまでに構築することを想像する方法です(ご案内ははるかに高く評価されるだろう):

models 
user.rb 
has_many events 

event.rb 
belongs_to user 

host.rb 
belongs_to user 
has_many events 

スキーマ

users 
name 
email 

events 
title 
address 
user_id 

hosts 
user_id 
event_id 
+0

も管理者の 'User'モデルですか?または別のモデルですか? – sa77

答えて

1

これをコメントとして書き始めましたが、あまりにも言い方が鈍っていることに気付きました。

モデルが壊れています... eventには多数のユーザーがいますが、belong_to単一のuserはありません。

あなたが持っているものは、ユーザーとイベントの間の多対多の関係です。これは、結合表(別名:結合表/接合表)を介して解決する必要があります。これは、レールの規則に反するが、あなたはホストテーブルでこれを解決するいくつかの方法を行っている。

何がしたいことのようなものです:

モデル

user.rb

has_and_belongs_to_many :events 

event.rb

has_and_belongs_to_many :users 

users table 
    name 
    email 

events table 
    title 
    address 

events_hosts table 
    user_id 
    event_id 

レール大会が、それは字句注文接合されたテーブルの2名参加して命名されるように結合テーブルのための2つのモデル参照する結合テーブルの作成 - すなわちイベントのホストの前に、連結を一緒にevents_hostsとなる。

またあなたが好むならば、あなたも参加したモデルを作成することができます。

EventHost 

belongs_to :user 
belongs_to :event 

をし、他の2つのモデルがhas_many :event_hostshas_and_belongs_to_manyを修正 - データベーススキーマが同じままになります。

+0

ああ!ダビッドありがとう!この方法で試してみる – ARTLoe