Ruby on Rails - доработка Simple Form
Здравствуйте. Нужно решить небольшой issue с симпл формой.
Возникает проблема сохранения simple_form.fields_for - ошибка forbidden attributes
В create экшене примерно такие дела:
def create
...
new_params = params[:booking]
new_params[:user_attributes] = new_params[:user_attributes].merge({"password"=>"oopsopps222"})
@booking = Booking.new
@booking.update(params)
# however @booking.user.update(params[:booking][:user_attributes]) gives the same error
...
end
...
def booking_params
params.require(:booking).permit(:arrived_at, :departured_at, :arrival_address, \
:departure_address, :arrival_city, :departure_city, \
:reservation_cost, :total_additional_cost, :user_attributes, :user_id, :garage_id, \
user_attributes: [:id, :name, :surname, :email, :phone], \
garage_attributes: [:id] \
)
end
end
В модели Booking:
belongs_to :user
accepts_nested_attributes_for :user
В модели User:
has_many :bookings
Но @booking.user.save и @booking.save в консоли с такими же параметрами, которая отправляет форма, проходит и сохраняет (возвращает true)
В моделях user_params и booking_params указаны правильно:
private
def booking_params
params.require(:booking).permit(:arrived_at, :departured_at, :arrival_address,
:departure_address, :arrival_city, :departure_city,
:reservation_cost, :total_additional_cost, :user_attributes, :user_id, :garage_id, :vehicle_id, :is_paid,
user_attributes: [:id, :name, :surname, :email, :phone],
garage_attributes: [:id]
)
end
и
private
def user_params
params.require(
:user
).permit(
:name,
:surname,
:phone,
:email,
:password,
:password_confirmation
)
end
в соотв. контроллерах.
есть и другие правки.
Оставляйте более менее предметный отклик, а не копипастнутый ответ, и свои ожидания по вознаграждению за решение этой проблемы и почасовая ставка в рублях.
С компаниями тоже не готов сотрудничать - только индивидуальные фрилансеры.