Sha256: f6939d0d4ff3d9ddfbf8e3651bf59484f9f5e73074ec1e6ee68209b5a276fd86

Contents?: true

Size: 664 Bytes

Versions: 3

Compression:

Stored size: 664 Bytes

Contents

module MasterModel
  extend ActiveSupport::Concern

  included do
    acts_as_list
    validates :name, presence: true, uniqueness: { case_sensitive: false }
    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 = "#{I18n.locale}: #{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

3 entries across 3 versions & 1 rubygems

Version Path
enju_seed-0.4.0.beta.1 app/models/concerns/master_model.rb
enju_seed-0.3.0.beta.4 app/models/concerns/master_model.rb
enju_seed-0.3.0.beta.3 app/models/concerns/master_model.rb