Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 18th, 2012  |  syntax: None  |  size: 2.32 KB  |  hits: 9  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. class Student < ActiveRecord::Base
  2.   belongs_to :program
  3.   has_one :contact, :as => :attachable
  4.   accepts_nested_attributes_for :contact
  5. end
  6.  
  7.  
  8. class Contact < ActiveRecord::Base
  9.   belongs_to :attachable, :polymorphic => true
  10. end
  11.  
  12.  
  13. class StudentsController < ApplicationController
  14.   ...
  15.   def update
  16.     @student = Student.find(params[:id])
  17.    
  18.     if @student.update_attributes(params[:student])
  19.       ...
  20.   end
  21. end
  22.  
  23.  
  24. - form_for (student, :remote => true, :html => { :'data-type' => 'html', :id => 'student-form' }) do |f|
  25.   ...
  26.   = f.fields_for student.contact do |contact_fields|
  27.     = render :partial => 'shared/contact', :locals => {:object => student.contact}
  28.  
  29. Mas bien es asi:
  30.  
  31.   = f.fields_for :contact do |contact_fields|
  32.     = render :partial => 'shared/contact', :locals => {:object => student.contact,  :table => 'student', :fields => contact_fields, :countries => countries}
  33.  
  34.  
  35. El Parcial...
  36. %div{:id => "field_#{table}_contact_address1", :class => 'field'}
  37.   = fields.label :address1, 'Dirección'
  38.   = fields.text_field :address1
  39.  
  40. %div{:id => "field_#{table}_contact_address2", :class => 'field'}
  41.   = fields.label :address2, ''
  42.   = fields.text_field :address2
  43.  
  44. %div{:id => "field_#{table}_contact_city", :class => 'field'}
  45.   = fields.label :city, 'Ciudad'
  46.   = fields.text_field :city
  47.  
  48. %div{:id => "field_#{table}_contact_state", :class => 'field'}
  49.   = fields.label :state, 'Estado'
  50.   = fields.text_field :state
  51.  
  52. %div{:id => "field_#{table}_contact_zip", :class => 'field'}
  53.   = fields.label :zip, 'Código Postal'
  54.   = fields.text_field :zip
  55.  
  56. %div{:id => "field_#{table}_contact_country_id", :class => 'field'}
  57.   = fields.label :address2, 'País'
  58.   = fields.select :country_id, options_from_collection_for_select(countries, "id", "name",object.country_id)
  59.  
  60. %div{:id => "field_#{table}_contact_mobile_phone", :class => 'field'}
  61.   = fields.label :mobile_phone, 'Teléfono Móvil'
  62.   = fields.text_field :mobile_phone
  63.  
  64. %div{:id => "field_#{table}_contact_home_phone", :class => 'field'}
  65.   = fields.label :home_phone, 'Teléfono de Casa'
  66.   = fields.text_field :home_phone
  67.  
  68. %div{:id => "field_#{table}_contact_work_phone", :class => 'field'}
  69.   = fields.label :work_phone, 'Teléfono de Trabajo'
  70.   = fields.text_field :work_phone
  71.  
  72. %div{:id => "field_#{table}_contact_website", :class => 'field'}
  73.   = fields.label :website, 'Sitio Web'
  74.   = fields.text_field :website