- class Student < ActiveRecord::Base
- belongs_to :program
- has_one :contact, :as => :attachable
- accepts_nested_attributes_for :contact
- end
- class Contact < ActiveRecord::Base
- belongs_to :attachable, :polymorphic => true
- end
- class StudentsController < ApplicationController
- ...
- def update
- @student = Student.find(params[:id])
- if @student.update_attributes(params[:student])
- ...
- end
- end
- - form_for (student, :remote => true, :html => { :'data-type' => 'html', :id => 'student-form' }) do |f|
- ...
- = f.fields_for student.contact do |contact_fields|
- = render :partial => 'shared/contact', :locals => {:object => student.contact}
- Mas bien es asi:
- = f.fields_for :contact do |contact_fields|
- = render :partial => 'shared/contact', :locals => {:object => student.contact, :table => 'student', :fields => contact_fields, :countries => countries}
- El Parcial...
- %div{:id => "field_#{table}_contact_address1", :class => 'field'}
- = fields.label :address1, 'Dirección'
- = fields.text_field :address1
- %div{:id => "field_#{table}_contact_address2", :class => 'field'}
- = fields.label :address2, ''
- = fields.text_field :address2
- %div{:id => "field_#{table}_contact_city", :class => 'field'}
- = fields.label :city, 'Ciudad'
- = fields.text_field :city
- %div{:id => "field_#{table}_contact_state", :class => 'field'}
- = fields.label :state, 'Estado'
- = fields.text_field :state
- %div{:id => "field_#{table}_contact_zip", :class => 'field'}
- = fields.label :zip, 'Código Postal'
- = fields.text_field :zip
- %div{:id => "field_#{table}_contact_country_id", :class => 'field'}
- = fields.label :address2, 'País'
- = fields.select :country_id, options_from_collection_for_select(countries, "id", "name",object.country_id)
- %div{:id => "field_#{table}_contact_mobile_phone", :class => 'field'}
- = fields.label :mobile_phone, 'Teléfono Móvil'
- = fields.text_field :mobile_phone
- %div{:id => "field_#{table}_contact_home_phone", :class => 'field'}
- = fields.label :home_phone, 'Teléfono de Casa'
- = fields.text_field :home_phone
- %div{:id => "field_#{table}_contact_work_phone", :class => 'field'}
- = fields.label :work_phone, 'Teléfono de Trabajo'
- = fields.text_field :work_phone
- %div{:id => "field_#{table}_contact_website", :class => 'field'}
- = fields.label :website, 'Sitio Web'
- = fields.text_field :website