2017-03-01 7 views
0

Rails初心者はここに。サッカーの試合に関する情報を表示するアプリケーションを作成しようとしています。私はGameモデルを持っています。これはマッチに関する情報を含んでいます。 gameオブジェクトに含める情報の1つのタイプは、目標や懲戒処分など、試合で発生するイベントです。Rails - オブジェクトのようなモデリング

class Game < ApplicationRecord 
    has_many :events 
end 

これらのイベントをモデル化する最良の方法は何ですか? Eventモデルが1つだけあるか、EventGoalYellowCardRedCardなどの複数のモデルを作成する利点はありますか?

答えて

1

あなたは、イベントタイプのモデルのようなものを使用することができます:あなたは、このような時間/ノートなどの情報を格納することができ、およびフィールドevent_type_idがあるだろうeventsテーブルで

# game.rb 
class Game < ApplicationRecord 
    has_many :events 
end 

# event.rb 
class Event < ApplicationRecord 
    belongs_to :event_type 
end 

# event_type.rb 
class EventType < ApplicationRecord 
end 

を。 event_types表では、あなたがそのような目標、yellow_cardなど

などのアクションを保存することができますが、簡単に、そのようなあなたが始めるために1つの提案は、などの特定の試合で

+0

これは考えていませんでしたが、 'event'オブジェクトが属している' event_type'に依存する必要のある様々な属性を説明する良い方法はありますか? – Jay

-1

をすべての目標を見つけるようクエリを作成することができるだろう。

class Game < ActiveRecord::Base 
    has_many :teams 
    has_many :players, through: :teams 
    has_many :goals 
    has_many :cards 
end 

class Team < ActiveRecord::Base 
    has_many :players 
end 

class Player < ActiveRecord::Base 
    belongs_to :team 
    has_many :cards 
    has_many :goals 
end 

class Card < ActiveRecord::Base 
    belongs_to :player 
    belongs_to :game 
end 

class Goal < ActiveRecord::Base 
    belongs_to :player 
    belongs_to :game 
end 

* obs:ゲームに応じてチームが異なるラインナップを持つことができるため、TeamLineupモデルを追加することができます。私はあなたがイベントについて尋ねたことは知っていますが、私は上記の提案された解決策がサッカーの試合をよりよくモデル化すると思う。

関連する問題