Buenas,
Utilizo el plugin acts_as_authenticated, con su modelo User. En los
views,
te crea un view para el registro, signup.rhtml, con el siguiente código:
<%= error_messages_for :user %>
<% form_for :user do |f| -%>
Login
<%= f.text_field :login %>
Email
<%= f.text_field :email %>
Password
<%= f.password_field :password %>
Confirm Password
<%= f.password_field :password_confirmation %>
<%= submit_tag 'Sign up' %>
<% end -%>
1º)En mi aplicación, tengo creado otro modelo, llamado UserDetail, donde
irÃan los datos “personales” del usuario, Dirección, teléfono, etc. Como
hago para insertar estos datos desde el formulario anterior del
signup.rhtml??
2º)Además, tengo hecha la relación 1-1 entre User y UserDetail,con un
campo user_id en UserDetail y las relaciones en User: has_one
:UserDetail y
en UserDetail: belongs_to :User, entonces, al crear un nuevo usuario,
no
deberÃa de crearse un UserDetail?? O se ha de hacer manualmente??
Muchas gracias,
Antonio.
On 7/30/07, Antonio R. [email protected] wrote:
Email
1º)En mi aplicación, tengo creado otro modelo, llamado UserDetail, donde
irían los datos “personales” del usuario, Dirección, teléfono, etc. Como
hago para insertar estos datos desde el formulario anterior del
signup.rhtml??
Vista:
<% fields_for :user_detail do |ud| %>
<%= ud.text_field :attribute %>
#etc…
<% end %>
Controlador User:
def create
@user = User.create(params[:user])
@user.user_detail.build(params[:ud])
etc
end
2º)Además, tengo hecha la relación 1-1 entre User y UserDetail,con un
campo user_id en UserDetail y las relaciones en User: has_one :UserDetail y
en UserDetail: belongs_to :User, entonces, al crear un nuevo usuario, no
debería de crearse un UserDetail?? O se ha de hacer manualmente??
podes user un trigger en tu clase User del modelo:
before_create :create_details
#etc…
protected
def create_details
user_detail = UserDetail.create(#whatever)
end
Igual mi consejo en tu caso seria desnormalizar y poner los UserDetail
dentro de la tabla user, no conozco bien la razon de tu modelo para
realizarlo de esa manera pero a veces usando ActiveRecord es
recomendado desnormalizar. Si no hay una fuerte razon para tener esos
datos aparte va a mejorar la usabilidad y la performance.
Saludos!