Я пытаюсь создать учетную запись пользователя на странице регистрации устройства. Как мне создать учетную запись на странице регистрации пользователя?
У меня есть следующие модели:
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
Учетная запись не создается, и для пользователя выводится ошибка, что учетная запись не может быть пустой.