См метода people_controller#person_params
для версии коды вопроса:Rails 4: сильные параметры и массив скаляров должны быть указаны последними на разрешении?
# person.rb
class Person < ActiveRecord::Base
# Attributes:
# - names (string)
# - age (integer)
# Combine: ["a", "b", "c", ...] => "a,b,c"
def names=(values)
self[:names] = values.join(",") if values.present?
end
end
# people_controller.rb
class PeopleController < ApplicationController
def create
@record = Record.new(person_params)
@record.save!
end
def person_params
params.require(:person).permit(
# Works fine
:age,
names: []
# Works fine
{ names: [] },
:age
# Does not work (SyntaxError)
names: [],
:age
)
end
end
Вопрос, почему names
скалярная массив не работает, когда вы перечисляете его в начале без упаковки его в качестве хэша?
Примеры doc не переносят скалярные массивы с помощью хэша, но они также не являются очень сложными примерами.
Ожидаемое поведение: strong_parameters
?
Спасибо за это; Я знал это в какой-то момент, но даже не думал об этом в этом отношении. –