модуль ActiveRecord::AttributeAssignment
Открытые методы экземпляра
Позволяет установить все атрибуты, передавая хэш атрибутов с ключами, соответствующими именам атрибутов (что, в свою очередь, соответствует именам столбцов).
Если переданный хэш отвечает методу permitted? и возвращаемое значение этого метода является false, возникает исключение ActiveModel::ForbiddenAttributesError.
# File activerecord/lib/active_record/attribute_assignment.rb, line 14
def assign_attributes(new_attributes)
if !new_attributes.respond_to?(:stringify_keys)
raise ArgumentError, "When assigning attributes, you must pass a hash as an argument."
end
return if new_attributes.blank?
attributes = new_attributes.stringify_keys
multi_parameter_attributes = []
nested_parameter_attributes = []
attributes = sanitize_for_mass_assignment(attributes)
attributes.each do |k, v|
if k.include?("(")
multi_parameter_attributes << [ k, v ]
elsif v.is_a?(Hash)
nested_parameter_attributes << [ k, v ]
else
_assign_attribute(k, v)
end
end
assign_nested_parameter_attributes(nested_parameter_attributes) unless nested_parameter_attributes.empty?
assign_multiparameter_attributes(multi_parameter_attributes) unless multi_parameter_attributes.empty?
end Также алиас: attributes=
attributes=(new_attributes)
Псевдоним для: assign_attributes
© 2004–2016 David Heinemeier Hansson
Licensed under the MIT License.