私は以下のようなものを実装しようとしています。基本的なセットアップはEvent
モデルは、その後Schedule
をbelong_toますSchedule
モデルRailsの既存のレコードと多対1の関係を作成するには
class Schedule < ActiveRecord::Base
has_many :events
end
です。 イベント名、日時、実行している長さで構成され、イベントが作成されたときにRoom
Room
は、すべての客室には、播種または管理インタフェースを介して事前に作成され、選択リストから選択されます。部屋には、座席数などの情報が格納されます。
私はこれを正しく実装したメソッドを見つけることを試みてきました。ソリューションは、habtmまたはhas_many:throughの範囲にあるようですが、この状況では結合テーブルが必要ではありません。 理論的には、イベントとしてhas_one :room
が返されますが、逆の関係はルームとしてbelongs_to :event
ではないため、多くのイベントで使用することができます。これには、外部キーが室テーブルにあることも必要です。
イベントでroom_idの外部キーを使用してこのモデルを手動で処理することを検討したところ、関連するルームを照会することができました。私は現在、部屋を使ってすべてのイベントを見つけるための要件を見ることができないので、これはうまくいくと思います。
class Event < ActiveRecord::Base
belongs_to :schedule
def room
Room.find(room_id)
end
end
私はRailsの中で、これまで行ってきたすべてが「正しい」と感じたが、私はここに来たすべての解決策はないと私は何かが欠けてるような気が。あるいは、私はちょうどその余分な魔法を期待しています。 これを行うための「Rails」方法はありますか?
ちょうど追加する:それは所有権(英語でそうであるように)を意味するとして 'belongs_to'を考えるのに役立つかもしれませんが、単に '関係を持っています。それは 'has_one'と同じ関係を意味します。それは、外部キーが別のテーブルにあるということだけです。 –
お二人のおかげです。私は、特に 'has_one'が状況に完全にマッチするように聞こえるところで、Railsの関連を考えるのは難しいかもしれないと思います。私はまた、has_many/belongs_to関連で外来キーの位置が混ざっています。正しい方向へのナッジとカップルの時間は助けになりました。 – Sajax