gurix/helena

View on GitHub
app/models/helena/survey.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Helena
  class Survey
    include Helena::Concerns::ApplicationModel
    include Mongoid::Orderable
    include Mongoid::Document::Taggable

    orderable

    field :name,        type: String
    field :language,    type: String

    has_many :versions, inverse_of: :survey, dependent: :destroy, class_name: 'Helena::Version'
    has_many :sessions, inverse_of: :survey, dependent: :destroy, class_name: 'Helena::Session'

    accepts_nested_attributes_for :versions

    validates :name, presence: true, uniqueness: true
    validates :language, presence: true

    def newest_version
      versions.find_by version: versions.max(:version) if versions.any?
    end
  end
end