класс ActiveRecord::Type::ImmutableString
Тип Active Model ImmutableString
Тип атрибута для представления неизменяемых строк. Он преобразует входящие значения в замороженные строки.
class Person include ActiveModel::Attributes attribute :name, :immutable_string end person = Person.new person.name = 1 person.name # => "1" person.name.frozen? # => true
Значения преобразуются в строки с помощью их метода to_s. Boolean значения обрабатываются по-другому: true будет преобразовано в "t" и false будет преобразовано в "f". Эти строки можно настроить при объявлении атрибута:
class Person include ActiveModel::Attributes attribute :active, :immutable_string, true: "aye", false: "nay" end person = Person.new person.active = true person.active # => "aye"
Публичные методы класса
# File activemodel/lib/active_model/type/immutable_string.rb, line 38 def initialize(**args) @true = -(args.delete(:true)&.to_s || "t") @false = -(args.delete(:false)&.to_s || "f") super end
Вызывает метод родительского класса
Публичные методы экземпляра
# File activemodel/lib/active_model/type/immutable_string.rb, line 48 def serialize(value) case value when ::Numeric, ::Symbol, ActiveSupport::Duration then value.to_s when true then @true when false then @false else super end end
Вызывает метод родительского класса
# File activemodel/lib/active_model/type/immutable_string.rb, line 44 def type :string end
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.