Spec-Zone.ru › Ruby on Rails 4.1

модуль ActiveRecord::AttributeAssignment

Открытые методы экземпляра

assign_attributes(new_attributes) Показать исходный код

Позволяет установить все атрибуты, передавая хэш атрибутов с ключами, соответствующими именам атрибутов (что, в свою очередь, соответствует именам столбцов).

Если переданный хэш отвечает методу 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API