Alias `assign_attributes` to `attributes=` for `AttributeAssignment`

There is no reason `attributes=` doesn't take `assign_attributes`.
This commit is contained in:
Ryuta Kamizono 2018-02-28 19:54:42 +09:00
parent 761122a6ca
commit 42a16a4d65
3 changed files with 10 additions and 5 deletions

View File

@ -35,6 +35,8 @@ module ActiveModel
_assign_attributes(sanitize_for_mass_assignment(attributes))
end
alias attributes= assign_attributes
private
def _assign_attributes(attributes)

View File

@ -68,6 +68,14 @@ class AttributeAssignmentTest < ActiveModel::TestCase
assert_equal "world", model.description
end
test "simple assignment alias" do
model = Model.new
model.attributes = { name: "hello", description: "world" }
assert_equal "hello", model.name
assert_equal "world", model.description
end
test "assign non-existing attribute" do
model = Model.new
error = assert_raises(ActiveModel::UnknownAttributeError) do

View File

@ -6,11 +6,6 @@ module ActiveRecord
module AttributeAssignment
include ActiveModel::AttributeAssignment
# Alias for ActiveModel::AttributeAssignment#assign_attributes. See ActiveModel::AttributeAssignment.
def attributes=(attributes)
assign_attributes(attributes)
end
private
def _assign_attributes(attributes)