validar validaciones rails formularios formulario anidados ruby-on-rails ruby ruby-on-rails-3 devise single-table-inheritance

ruby-on-rails - formularios - validaciones rails



Los raíles diseñan agregar campos al formulario de registro cuando tienen ITS (1)

Espero comprenderlo bien: creo que aún no has entendido el concepto de ITS.

Tratemos de hacerlo más claro.

Las clases que deriva de un modelo orinal heredan todo de él. Su modelo original debería verse así:

class User < ActiveRecord::Base devise :database_authenticatable attr_accessible :email, :password, :password_confirmation, :remember_me end

Para ser realmente una ITS, debe generar una migración para incluir el "tipo" en su modelo. Simplemente escribe:

rails g migration add_type_to_users type:string rake db:migrate

Luego configura tu modelo de trabajador que es realmente simple:

class Worker < User end

Como hiciste, incluye en tu archivo routes.rb:

devise_for :users, :companies, :workers

¡Ya terminaste!

Vaya a workers / sign_up, cree una cuenta y regrese a su terminal.

Desde aquí, escribe rails c para iniciar la consola.

Ahora intente: User.all.last , debería ver la cuenta que acaba de crear con un tipo ''worker''

Y prueba: Worker.last , aquí de nuevo, encuentras la última cuenta creada.

Recuerde: Rails es tan genial como simple :)

Aquí están mis modelos:

class User < ActiveRecord::Base has_one :worker, :class_name => ''Worker'', :foreign_key => :worker_id devise :database_authenticatable accepts_nested_attributes_for :worker attr_accessible :worker_id, :email, :password, :password_confirmation, :remember_me, :workers_attributes, :worker_attributes, :name, :worker end class Worker < User devise :database_authenticatable, :registerable belongs_to :user attr_accessible :name, :worker, :workers end

Estoy tratando de agregar el nombre del campo a la forma de registro en http: // localhost: 3000 / workers / sign_up

El formulario de registro

<h2>Create Worker</h2> <%= form_for resource, :as => resource_name, :url => registration_path(resource_name) do |f| %> <%= devise_error_messages! %> <table summary="Subject form fields"> <tr> <th>Name:</th> <td><%= f.text_field :name %></td> </tr> <tr> <th><%= f.label :email %></th> <td><%= f.text_field :email %></td> </tr> <tr> <th><%= f.label :kodeord %></th> <td><%= f.password_field :password %></td> </tr> <tr> <th><%= f.label :bekraeft_kodeord %></th> <td><%= f.password_field :password_confirmation %></td> </tr> </table> <p><%= f.submit "Create Worker" %></p> <% end %> <%= render :partial => "devise/shared/links" %>

Pero recibo un error de plantilla: el trabajador modelo no responde al nombre. ¿Y cómo creo la asociación entre el usuario y el trabajador?

Saludos, Rails principiante