Class: Spina::Admin::Journal::Author
- Inherits:
-
ApplicationRecord
- Object
- ApplicationRecord
- Spina::Admin::Journal::Author
- Defined in:
- app/models/spina/admin/journal/author.rb
Overview
Note:
An author must have at least one Affiliation with status: primary, else validation will fail.
Authors are collections of Affiliations.
Since people can have multiple names, titles, institutions, etc., these details are all handled by the Affiliation record. This record groups said records together, in order that a coherent oeuvre of a single author be identified, which is more user-friendly.
Instance Attribute Summary collapse
-
#affiliations ⇒ ActiveRecord::Relation
Directly associated Affiliations.
-
#articles ⇒ ActiveRecord::Relation
Articles associated through authorships.
-
#institutions ⇒ ActiveRecord::Relation
The Institutions corresponding to this Author’s affiliations.
- #primary_affiliation ⇒ Object readonly
Instance Attribute Details
#affiliations ⇒ ActiveRecord::Relation
Returns Directly associated Spina::Admin::Journal::Affiliations.
19 |
# File 'app/models/spina/admin/journal/author.rb', line 19 has_many :affiliations, inverse_of: :author, dependent: :destroy |
#articles ⇒ ActiveRecord::Relation
Returns Spina::Admin::Journal::Articles associated through authorships.
26 |
# File 'app/models/spina/admin/journal/author.rb', line 26 has_many :articles, through: :affiliations |
#institutions ⇒ ActiveRecord::Relation
Returns The Institutions corresponding to this Author’s affiliations.
23 |
# File 'app/models/spina/admin/journal/author.rb', line 23 has_many :institutions, through: :affiliations |
#primary_affiliation ⇒ Object (readonly)
32 33 34 |
# File 'app/models/spina/admin/journal/author.rb', line 32 def primary_affiliation affiliations.primary.first || Affiliation.new(status: :primary) end |