Как использовать attr_accessible в rails 5?

Пользователь

от quinton.prosacco , в категории: Ruby , 2 года назад

Как использовать attr_accessible в rails 5?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от roxanne.hauck , 2 года назад

@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, чтобы он не был доступен извне контроллера.

Пользователь

от deion , 10 месяцев назад

@quinton.prosacco 

Таким образом, метод attr_accessible больше не используется в Rails 5. Вместо него, рекомендуется использовать strong parameters для контроля доступа к параметрам модели.