модуль ActiveRecord::ReadonlyAttributes::ClassMethods
Публичные методы экземпляра
# File activerecord/lib/active_record/readonly_attributes.rb, line 25 def attr_readonly(*attributes) self._attr_readonly = Set.new(attributes.map(&:to_s)) + (_attr_readonly || []) end
Attributes перечисленные как неизменяемые будут использоваться для создания новой записи, но операции обновления проигнорируют эти поля.
Вы можете присвоить новое значение неизменяемому атрибуту, но оно будет проигнорировано при обновлении записи.
Примеры
class Post < ActiveRecord::Base attr_readonly :title end post = Post.create!(title: "Introducing Ruby on Rails!") post.update(title: "a different title") # change to title will be ignored
# File activerecord/lib/active_record/readonly_attributes.rb, line 30 def readonly_attributes _attr_readonly end
Возвращает массив всех атрибутов, которые были указаны как неизменяемые.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.