Class: Spina::Admin::Journal::Author

Inherits:
ApplicationRecord
  • Object
show all
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.

See Also:

Instance Attribute Summary collapse

Instance Attribute Details

#affiliationsActiveRecord::Relation

Returns Directly associated Spina::Admin::Journal::Affiliations.

Returns:



19
# File 'app/models/spina/admin/journal/author.rb', line 19

has_many :affiliations, inverse_of: :author, dependent: :destroy

#articlesActiveRecord::Relation

Returns Spina::Admin::Journal::Articles associated through authorships.

Returns:



26
# File 'app/models/spina/admin/journal/author.rb', line 26

has_many :articles, through: :affiliations

#institutionsActiveRecord::Relation

Returns The Institutions corresponding to this Author’s affiliations.

Returns:

  • (ActiveRecord::Relation)

    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_affiliationObject (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