Module :registerable
du modèle User
(lire https://github.com/plataformatec/devise/wiki/How-To:-Manage-users-through-a-CRUD-interface) En supposant que vous avez un modèle utilisateur avec une association Profil has_one , vous devez simplement autoriser les attributs imbriqués dans l'utilisateur et modifier la vue d'enregistrement de votre appareil. Exécutez la commande 'rails generate devise: views' puis modifiez la vue d'inscription de legs # new.html.erb comme indiqué ci-dessous en utilisant l'assistant fields_for form pour que votre formulaire d'inscription mette à jour votre modèle Profile avec votre modèle User.
<div class="register">
<h1>Sign up</h1>
<% resource.build_profile %>
<%= form_for(resource, :as => resource_name,
:url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<h2><%= f.label :email %></h2>
<p><%= f.text_field :email %></p>
<h2><%= f.label :password %></h2>
<p><%= f.password_field :password %></p>
<h2><%= f.label :password_confirmation %></h2>
<p><%= f.password_field :password_confirmation %></p>
<%= f.fields_for :profile do |profile_form| %>
<h2><%= profile_form.label :first_name %></h2>
<p><%= profile_form.text_field :first_name %></p>
<h2><%= profile_form.label :last_name %></h2>
<p><%= profile_form.text_field :last_name %></p>
<% end %>
<p><%= f.submit "Sign up" %></p>
<br/>
<%= render :partial => "devise/shared/links" %>
<% end %>
</div>
Et dans votre modèle utilisateur:
class User < ActiveRecord::Base
...
attr_accessible :email, :password, :password_confirmation, :remember_me, :profile_attributes
has_one :profile
accepts_nested_attributes_for :profile
...
end
Pourquoi créer un autre profil de modèle? Pourquoi ne pas tout avoir dans l'utilisateur. – AnApprentice
@ Séparation d'AnApprentice des préoccupations. Vous souhaitez disposer d'un modèle de compte ou d'utilisateur pour tout ce qui concerne le compte d'utilisateur et le modèle de profil pour les données de profil personnelles. Vous devrez peut-être également autoriser les utilisateurs à avoir un profil très complet et vous ne souhaitez pas créer de table 50+. –