Вход в Rails Devise - можно выбрать любую роль (отношение один ко многим) - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь реализовать вход в Devise не только с помощью электронной почты и пароля, но и с помощью роли.У пользователя может быть несколько ролей, и он может выбрать любую роль при входе в систему.

Model:
  User  -  has_many :roles (Devise applied)
  Role  -  belongs_to :user

Я хочу аутентифицировать пользователя вместе с ролью и запомнить роль, выбранную при входе в систему.

Примечание: Рельсы 5.2.1 Разработка 4.5.0

1 Ответ

0 голосов
/ 08 октября 2018

Иногда rails generate migration add_firstname_and_lastname_to_users email:string производит миграцию, подобную этой

class AddEmailToUsers < ActiveRecord::Migration[5.0]
  def change
  end
end

В этом случае вам нужно вручную добавить дополнительную строку, чтобы изменить

class AddEmailToUsers < ActiveRecord::Migration[5.0]
  def change
    add_column :users, :first_name, :string
    add_column :users, :last_name, :string
  end
end

И затем run rake db:migrate

в контроллере приложения

before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) << :first_name
    devise_parameter_sanitizer.for(:sign_up) << :last_name
devise_parameter_sanitizer.for(:account_update) << [:first_name, :last_name]
  end
...