Hi All, I have a nested form OUTER FORM for :doctor
Hi All, I have a nested form OUTER FORM for :doctor INNER FORM for :user
I am having problem is displaying the validation errors for both doctor and user model. Any idea about how I should be doing this.
Thanks alot in advance.
You can't have a form inside of another one. Maybe I am misunderstanding?
I am pretty sure you have have nested forms....
my nested form looks like
<% form_for :doctor, :url => url do |doc_form| %>
<table> <tr> <td> <%= doc_form.label :"Specialized Field: " %> </td> <td> <%= doc_form.text_field :specialize %> </td> </tr> <tr> <td> <%= doc_form.label :"Medical Center Name: " %> </td> <td> <%= doc_form.text_field :working_for %> </td> </tr> <% doc_form.fields_for :user, :url => url do |f| %>
<tr> <td> <%= f.label :"First Name: " %> </td> <td> <%= f.text_field :fname %> </td> </tr> ..................... I want to display validation errors for both doctor and user...my create action in the controller looks like
def create doc_attr = params[:doctor] user_attr = doc_attr.delete(:user) new_doctor = Doctor.new(doc_attr) new_doctor.user = User.new(user_attr) @saved = new_doctor.save!
if @saved == true flash[:notice] = "Registration Successful" redirect_to login_path() else render :action => 'new' end end
Thank you
Instead of having to manually create your child user at the controller- level, have a look at this:
And the API documentation is at:
HTH
you can have fields_for to nest a “form” for a child object
I thought he meant he had 2 form tags, one inside of another.
I think you might be missing something in your models.
In the Doctor model you should have:
has_many :users accepts_nested_attributes_for :users
In the User model you should have:
belongs_to :doctor
I think I've run into the same problem before and it was due to the fact that I was missing the 'accepts_nested_attributes_for'.