cool wrote:
> I have Person model in that i have used STI like
> class person < ActiveRecord
> class student <person
> class parent < person
>
> for every thing i have table called people.
>
> when i am adding a student i have fields for parent also like
> i want to add a student with firstname and last name and at the same
> time i mean in the same form i wnat to add to which parent he belongs
> to in the same form i have fields like parent name, email, address
This was quite hard to read. Use full stops or bullet points or
something.
>
> can u give idea abt this
So, you have something like
class Person < ActiveRecord::Base ...
in app/models/person.rb
And:
class Parent < Person ...
class Student < Person ...
maybe in app/models/parent.rb and student.rb respectively.
And your 'people' table has a column called 'type' which is a string
field.
In your edit form you could do something like:
<% form_for :student , :url => {:action => 'update'} do |s| %>
<%= s.text_field :first_name %>
<%= s.text_field :last_name %>
... parent stuff - see below ...
... submit button etc ...
<% end %>
Within this form you would have something like:
<%= select :selected_parent , :id ,
Parent.find(:all).collect{|p|[p.last_name,p.id]} %>
which will generate a dropdown with existing parents last_names and
their id's.
Or if you are entering parents details in alongside the student,
something like:
<%= text_field :parent, :first_name %>
<%= text_field :parent, :last_name %>
Read api.rubyonrails.com and go to ActionView::Helpers::FormHelper and
FormOptions for how to use the form fields and what they generate in
terms of the params your controller will be receiving.
In your controller, the 'update' action would do something like:
def update
...
@student=Student.new(params[:student])
@student.parent_id = params[:selected_parent][:id]
@student.save!
('parent_id' is a field for storing the id of the parent in your
'people' table.)
You could save the parent using associations instead but I won't go into
it.
If you were collecting parent details using the text fields above, you
might have:
@parent=Parent.new(params[:parent])
@parent.save!
Daniel
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---