Sha256: cfcdc5dc7a71887638d32ca4b9ad4fde1d415e24a8126814ac269915b18e3aec

Contents?: true

Size: 1.01 KB

Versions: 24

Compression:

Stored size: 1.01 KB

Contents

class Role < ActiveRecord::Base
  include MasterModel
  validates :name, presence: true, format: { with: /\A[A-Za-z][a-z_,]*[a-z]\z/ }
  has_many :user_has_roles
  has_many :users, through: :user_has_roles
  after_save :clear_all_cache
  after_destroy :clear_all_cache

  extend FriendlyId
  friendly_id :name

  def localized_name
    display_name.localize
  end

  def self.all_cache
    if Rails.env == 'production'
      Rails.cache.fetch('role_all'){ Role.select(:name).all }
    else
      Role.select(:name)
    end
  end

  def clear_all_cache
    Rails.cache.delete('role_all')
  end

  def self.default_role
    Role.where(name: 'Guest').first
  end

  private
  def valid_name?
    true
  end
end

# == Schema Information
#
# Table name: roles
#
#  id           :integer          not null, primary key
#  name         :string           not null
#  display_name :string
#  note         :text
#  created_at   :datetime
#  updated_at   :datetime
#  score        :integer          default(0), not null
#  position     :integer
#

Version data entries

24 entries across 23 versions & 2 rubygems

Version Path
enju_seed-0.3.2 app/models/role.rb
enju_seed-0.3.1 app/models/role.rb
enju_seed-0.3.0 app/models/role.rb
enju_seed-0.3.0.rc.1 app/models/role.rb
enju_seed-0.3.0.beta.7 app/models/role.rb
enju_seed-0.3.0.beta.6 app/models/role.rb
enju_seed-0.2.3 app/models/role.rb
enju_seed-0.2.2 app/models/role.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/enju_seed-0.2.1/app/models/role.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/enju_seed-0.2.0/app/models/role.rb
enju_seed-0.2.1 app/models/role.rb
enju_seed-0.2.0 app/models/role.rb
enju_seed-0.2.0.beta.7 app/models/role.rb
enju_seed-0.2.0.beta.6 app/models/role.rb
enju_seed-0.2.0.beta.5 app/models/role.rb
enju_seed-0.2.0.beta.4 app/models/role.rb
enju_seed-0.2.0.beta.3 app/models/role.rb
enju_seed-0.2.0.beta.2 app/models/role.rb
enju_seed-0.2.0.beta.1 app/models/role.rb
enju_leaf-1.2.0.beta.1 app/models/role.rb