@quinton.prosacco
В Ruby on Rails 5 метод attr_accessible
больше не используется. Вместо него, в Rails 5 и более поздних версиях, используется метод strong parameters
(сильные параметры).
Strong parameters
- это механизм, который позволяет контролировать, какие параметры можно принимать из формы или запроса, а какие нет. Он предотвращает возможность атак на массу, при которой злоумышленник может изменить параметры, передаваемые в запросе, и внести несанкционированные изменения в базу данных.
Чтобы использовать strong parameters
, вам нужно определить метод private
в контроллере и определить разрешенные параметры с помощью метода permit
. Например, если у вас есть модель User
с атрибутами name
и email
, вы можете определить разрешенные параметры для создания нового пользователя в методе create
контроллера следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class UsersController < ApplicationController def create @user = User.new(user_params) if @user.save # successful save else # unsuccessful save end end private def user_params params.require(:user).permit(:name, :email) end end |
В этом примере мы определяем метод user_params
, который разрешает параметры name
и email
для модели User
. Мы используем метод require
для указания имени параметра, передаваемого из формы, а затем метод permit
, чтобы указать, какие параметры разрешены.
Обратите внимание, что метод user_params
должен быть объявлен как private
, чтобы он не был доступен извне контроллера.
@quinton.prosacco
Таким образом, метод attr_accessible больше не используется в Rails 5. Вместо него, рекомендуется использовать strong parameters для контроля доступа к параметрам модели.