Class: Spina::Admin::Conferences::Room
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Spina::Admin::Conferences::Room
- Defined in:
- app/models/spina/admin/conferences/room.rb
Overview
Instance Attribute Summary collapse
-
#building ⇒ String?
The building of the room.
-
#institution ⇒ Institution?
Directly associated institution.
-
#number ⇒ String?
The number of the room.
-
#presentations ⇒ ActiveRecord::Relation
Presentations associated with #sessions.
-
#sessions ⇒ ActiveRecord::Relation
Directly associated sessions.
Instance Method Summary collapse
-
#name ⇒ String
The building and number of the room.
-
#sorted ⇒ ActiveRecord::Relation
All rooms, ordered by building and number.
Instance Attribute Details
#building ⇒ String?
Returns the building of the room.
21 |
# File 'app/models/spina/admin/conferences/room.rb', line 21 translates :building, :number, fallbacks: true |
#institution ⇒ Institution?
Returns directly associated institution.
29 |
# File 'app/models/spina/admin/conferences/room.rb', line 29 belongs_to :institution, -> { includes(:translations) }, inverse_of: :rooms, autosave: true, touch: true |
#number ⇒ String?
Returns the number of the room.
21 |
# File 'app/models/spina/admin/conferences/room.rb', line 21 translates :building, :number, fallbacks: true |
#presentations ⇒ ActiveRecord::Relation
Returns Presentations associated with #sessions.
39 |
# File 'app/models/spina/admin/conferences/room.rb', line 39 has_many :presentations, -> { distinct.includes(:translations) }, through: :sessions |
#sessions ⇒ ActiveRecord::Relation
Note:
A room cannot be destroyed if it has dependent sessions.
Returns directly associated sessions.
34 |
# File 'app/models/spina/admin/conferences/room.rb', line 34 has_many :sessions, -> { includes(:translations) }, inverse_of: :room, dependent: :restrict_with_error |
Instance Method Details
#name ⇒ String
Returns the building and number of the room.
44 45 46 47 48 |
# File 'app/models/spina/admin/conferences/room.rb', line 44 def name return if building.blank? || number.blank? Room.human_attribute_name :name, building: building, number: number end |
#sorted ⇒ ActiveRecord::Relation
Returns all rooms, ordered by building and number.
24 |
# File 'app/models/spina/admin/conferences/room.rb', line 24 scope :sorted, -> { i18n.order :building, :number } |