yes
он защищает от SQL-инъекций и безопасен как params [: user] is HASH
Вы можете проверить это с помощью следующего примера. Я предполагаю, что вы получаете некоторые недопустимые значения в параметрах [: user] [: name]
@user= User.new(params[:user])
@user.save
И
@user= User.new()
@user.name=params[:user][:name] #your application may crash here or this is not sql injection safe
@user.save
Чтобы избежать этого, вы можете использовать хэш
@user= User.new({:name=>params[:user][:name]})
@user.save
После прочтения это я пришел к выводу, что ни .new & .save не защищены от инъекций sql
Edited
Функция массового назначения может стать проблемой, поскольку она позволяет злоумышленнику устанавливать атрибуты любой модели, манипулируя хешем, переданным методу new () модели:
ПОЖАЛУЙСТА, ПРОЧИТАЙТЕ 6 Mass Assignment
для проблем и 6.1 Countermeasures
для решения