Как лучше всего с Clearance автоматически создавать «Аккаунт» с уникальным идентификатором account_id (необязательно UUID) и назначать его новому пользователю при регистрации?
Мне нужно продлить разрешение. Пользовательская форма регистрации и пользовательский контроллер справляются с этим, но у меня возникают проблемы с тем, чтобы заставить это работать.
Должно ли это быть before_filter при регистрации или частью действия пользователя по созданию?
Обновление: добавление кода для справки ...
# app/controllers/users_controller.rb
class UsersController < Clearance::UsersController
def create
@user = user_from_params
@account = account_from_params
@user.account = @account
if @user.save
sign_in @user
redirect_back_or url_after_create
else
render template: "users/new"
end
end
end
class AccountController < ApplicationController
def create
@account = Account.new(account_params)
end
private
def account_params
params[:account].permit(:id)
end
end
<fieldset>
<%= form.label :email %>
<%= form.text_field :email, type: 'email' %>
</fieldset>
<fieldset>
<%= form.label :password %>
<%= form.password_field :password %>
</fieldset>
# Users & Clearance routes
resources :passwords, controller: 'clearance/passwords', only: [:create, :new]
resource :session, controller: 'clearance/sessions', only: [:create]
resources :users, controller: 'clearance/users', only: [:create] do
resource :password,
controller: 'clearance/passwords',
only: [:create, :edit, :update]
end
get '/login' => 'clearance/sessions#new', as: 'sign_in'
delete '/logout' => 'clearance/sessions#destroy', as: 'sign_out'
get '/signup' => 'clearance/users#new', as: 'sign_up'
get '/users' => 'users#index'