error using nested attributes

I have following models

class User < ActiveRecord::Base

  belongs_to :user_type   has_many :addresses, :as =>:addressee, :dependent => :destroy   has_many :photos,:as => :asset,:dependent => :destroy

  accepts_nested_attributes_for :addresses, :allow_destroy => true   accepts_nested_attributes_for :photos, :allow_destroy => true end

class Photo < ActiveRecord::Base

  belongs_to :asset, :polymorphic => true

  validates_attachment_presence :photo unless :photo   validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/jpg', 'image/gif', 'image/png', 'image/bmp'] unless :photo   attr_accessor :photo

  # Paperclip   has_attached_file :photo, :styles => { :medium => "300x300>", :thumb => "100x100>" } end

class Address < ActiveRecord::Base

  belongs_to :addressee, :polymorphic => true

  validates_presence_of :Address1, :maximum => 50   validates_presence_of :City   validates_presence_of :State   validates_presence_of :ZipCode   validates_presence_of :Country end

i have one form having combination of all this field if i hit submit button without adding any data it show all validation from users addresses model but not showing photo model validations & hiding photo field from UI not getting how this is happening? i am using nested attributes

here is my form

<div align="center"> <h1>Sign up as a new user</h1> <%= error_messages_for :user %> <% @user.password = @user.password_confirmation = nil %> <% form_for @user,:url => users_path,:html => { :multipart => true } do

f> -%>

  <%= f.hidden_field :user_type_id,:value=>'2' %>   <p><%= f.label :login %><br/><%= f.text_field :login %></p>   <p><%= f.label :email %><br/><%= f.text_field :email %></p>   <p><%= f.label :password %><br/><%= f.password_field :password %></p>   <p><%= f.label :password_confirmation, 'Confirm Password' %><br/> <%= f.password_field :password_confirmation %></p>   <p><%= f.label :firstname %><br/><%= f.text_field :firstname %></p>   <p><%= f.label :lastname %><br/><%= f.text_field :lastname %></p>   <p><%= f.label :phone %><br/><%= f.text_field :phone %></p>   <% f.fields_for :photos do |fp| %>      <p><%= fp.label :photo%><br/><%= fp.file_field :photo%></p>   <% end %> <% f.fields_for :addresses do |fa| %>       <p><%=fa.label :address_1 %><br/><%=fa.text_area :Address1,:cols => 30,:rows => 3 %></p>     <p><%=fa.label :address_2 %><br/><%=fa.text_area :Address2,:cols => 30,:rows => 3 %></p>     <p><%=fa.label :City %><br/><%=fa.text_field :City %></p>     <p><%=fa.label :State %><br/><%=fa.text_field :State %></p>     <p><%=fa.label :zip_code %><br/><%=fa.text_field :ZipCode %></p>     <p><%=fa.label :Country %><br/><%=fa.text_field :Country %></p>   <% end %>

  <p><%= submit_tag 'Sign up' %></p> <% end -%> </div>

in controller

def new     @user = User.new     @user.photos.build     @user.addresses.build   end

  #Create new user.   def create     logout_keeping_session!     @user = User.new(params[:user])     if @user.save       redirect_back_or_default('/')       flash[:notice] = "Thanks for signing up! We're sending you an email with your activation code."     else       flash[:error] = "Sorry!! There was an error while setting up the account. Please try again, or contact our admin (admin@makemyhome.com)."       render :action => 'new'     end   end

anybody have any idea on it?

Sunny Bogawat wrote: