Разработать несколько моделей, полное имя = ноль - PullRequest
0 голосов
/ 24 октября 2018

Я использую devise гем в моем приложении.Я создал 2 модели (чтобы иметь две разные регистрационные формы).

Но когда я добавил полное имя и имя к моим формам через db.Он отправляет мне ноль при регистрации или изменении профиля.Все остальное работает отлично.

user.rb

class User < ApplicationRecord
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
end

editor.rb

class Editor < ApplicationRecord
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  has_many :softwares
end

контроллер / редакторы / registrations_controller.rb

class Editors::RegistrationsController < Devise::RegistrationsController
end

контроллер / пользователи / registrations_controller.rb

class Users::RegistrationsController < Devise::RegistrationsController
end

db / migrate / devise_create_users.рб

class DeviseCreateUsers < ActiveRecord::Migration[5.2]
  def change
    create_table :users do |t|

    t.string :email,              null: false, default: ""
    t.string :encrypted_password, null: false, default: ""
    t.string :name
    t.string :fullname 

   end
  end
end

То же самое для редакторов

Спасибо за помощь ...

1 Ответ

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

Я надеюсь, что это решит вашу проблему ...

controller / editors / registrations_controller.rb

class Editors::RegistrationsController < Devise::RegistrationsController

  private

  def sign_up_params
    params.require(:editor).permit(:name, :fullname, :email, :password, :password_confirmation)
  end

  def account_update_params
    params.require(:editor).permit(:name, :fullname, :email, :password, :password_confirmation, :current_password)
  end
end

controller / users / registrations_controller.rb

class Users::RegistrationsController < Devise::RegistrationsController

  private

  def sign_up_params
    params.require(:user).permit(:name, :fullname, :email, :password, :password_confirmation)
  end

  def account_update_params
    params.require(:user).permit(:name, :fullname, :email, :password, :password_confirmation, :current_password)
  end
end

И добавить эту строку в ваш файл config / rout.rb

devise_for :users, :controllers => { registrations: 'registrations' }
devise_for :editors, :controllers => { registrations: 'registrations' }

Чтобы узнать больше нажмите здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...