Недопустимый параметр при регистрации устройства - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь создать учетную запись пользователя на странице регистрации устройства. Как мне создать учетную запись на странице регистрации пользователя?

У меня есть следующие модели:

class User < ApplicationRecord
  devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable
  belongs_to :account
  accepts_nested_attributes_for :account
end


class Account < ApplicationRecord
  validates :alias, presence:true
  has_many :users, dependent: :restrict_with_exception
end

class Users::RegistrationsController < Devise::RegistrationsController
  before_action :configure_sign_up_params, only: [:create]

  def new
    super do |r|
      r.build_account
    end
  end

  # POST /resource
  def create
    super
  end

  protected

  def configure_sign_up_params
    devise_parameter_sanitizer.permit(:sign_up, keys: [
      :first_name,
      :last_name,
      :country_code,
      :phone_number,
      account_attributes: [
        :alias
      ]
    ])
  end
end


Rails.application.routes.draw do
  devise_for :users, controllers: {
    registrations: 'users/registrations'
  }
end

У меня есть следующие представления:

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>

  ...

  <%= f.fields_for resource.account do |account_form| %>
    <div class="field">
      <%= account_form.label :alias %><br />
      <%= account_form.text_field :alias %>
    </div>
  <% end %>

  <div class="actions">
    <%= f.submit "Sign up" %>
  </div>
<% end %>

Когда я пытаюсь зарегистрироваться, я ожидаю, что код создаст учетную запись и свяжет ее с существующим пользователем.

Вместо этого я получаю следующую ошибку: Unpermitted параметр:: account

Учетная запись не создается, и для пользователя выводится ошибка, что учетная запись не может быть пустой.

...