Sha256: 4a3e5aec6943654d67e1bc4c530e35921aec7ea0662c21944c76ab96af88f5fe

Contents?: true

Size: 660 Bytes

Versions: 5

Compression:

Stored size: 660 Bytes

Contents

module MasterModel
  extend ActiveSupport::Concern

  included do
    acts_as_list
    validates_uniqueness_of :name, case_sensitive: false
    validates :name, presence: true
    validate :name do
      valid_name?
    end
    validates :display_name, presence: true
    before_validation :set_display_name, on: :create
    strip_attributes only: :name
  end

  # 表示名を設定します。
  def set_display_name
    self.display_name = name if display_name.blank?
  end

  private
  def valid_name?
    unless name =~ /\A[a-z][0-9a-z_]*[0-9a-z]\z/
      errors.add(:name, I18n.t('page.only_lowercase_letters_and_numbers_are_allowed'))
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
enju_seed-0.4.0.rc.2 app/models/concerns/master_model.rb
enju_seed-0.4.0.rc.1 app/models/concerns/master_model.rb
enju_seed-0.4.0.beta.3 app/models/concerns/master_model.rb
enju_seed-0.5.0.beta.1 app/models/concerns/master_model.rb
enju_seed-0.4.0.beta.2 app/models/concerns/master_model.rb