diff options
Diffstat (limited to 'app/models/species.rb')
| -rw-r--r-- | app/models/species.rb | 24 |
1 files changed, 24 insertions, 0 deletions
| diff --git a/app/models/species.rb b/app/models/species.rb new file mode 100644 index 0000000..0623f11 --- /dev/null +++ b/app/models/species.rb | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | class Species < ApplicationRecord | ||
| 2 | extend Enumerize | ||
| 3 | |||
| 4 | has_many :revisions, dependent: :restrict_with_exception | ||
| 5 | |||
| 6 | has_many :pokedex_entries, dependent: :destroy | ||
| 7 | |||
| 8 | validates :name, presence: true, uniqueness: true | ||
| 9 | |||
| 10 | validates :type_1, presence: true | ||
| 11 | |||
| 12 | enumerize :type_1, in: Move::TYPES | ||
| 13 | enumerize :type_2, in: Move::TYPES | ||
| 14 | |||
| 15 | belongs_to :ability_1, class_name: "Ability" | ||
| 16 | belongs_to :ability_2, class_name: "Ability", optional: true | ||
| 17 | |||
| 18 | def current_revisions | ||
| 19 | revisions. | ||
| 20 | where("pokemon.current_id = revisions.id"). | ||
| 21 | includes(:pokemon). | ||
| 22 | references(:pokemon) | ||
| 23 | end | ||
| 24 | end | ||
