harper.sean-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
2007-Jul-16 19:47 UTC
Validation isn''t working - weird problem
I am really stuck, would appreciate some help from the community. I have a method in my controller like this: def save_business if(params[:id] == nil) @business = Business.new(params[:business]) @business.user_id = session[:user_id] if @business.save flash[:notice] = ''Business was successfully created.'' redirect_to :action => ''edit_business_2'', :id => @business else render :action => ''edit_business_1'' end else @business = Business.find(params[:id]) if @business.update_attributes(params[:business]) redirect_to :action => ''edit_business_2'', :id => @business else render :action => ''edit_business_1'', :id => @business end end end I have a form in my rhtml file like this: <% form_for :business, :url => { :action => :save_business, :id => @business} do |form| %> <p> <label for="legal_name">Legal name:</label> <%= form.text_field :legal_name, :size => 40 %> (example: TFS, LLC) </p> ... ... ... <%= submit_tag "Save", :class => "submit", :id => "yah", :style => "visibility:hidden; "%> <% end %> In the model file I have this: validates_presence_of :legal_name validates_numericality_of :zip protected def validate if legal_name.blank? errors.add(:legal_name, "should be at least 0.01") end end Neither of the validation is working, in the log file I get something like this: Processing BusinessController#save_business (for xxx.xx.xxx.xx at 2007-07-16 14:03:02) [POST] Session ID: 35229c421c8a7df5d77aff8f7f2a5b3a Parameters: {"business"=>{"city"=>"", "business_description"=>"", "zip"=>"hi", "contact_person"=>"Sean", "role_at_company"=>"CEO", "phone_number"=>"312-218-3413", "street_address"=>"7a8", "years_business_owned"=>"2", "entity_type_id"=>"1", "doing_business_as"=>"sean28893", "years_in_business"=>"8", "legal_name"=>""}, "commit"=>"Save", "action"=>"save_business", "id"=>"9", "controller"=>"business"} Redirected to http://www.sh21.com/business/edit_business_2/9 Completed in 0.06194 (16 reqs/sec) | DB: 0.05713 (92%) | 302 Found [http://www.sh21.com/business/save_business/9] legal_name is blank, and zip is not numeric, but they both save successfully...how weird! Can anyone help me out? --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi Sean, # controller: ============> def save_business @business = Business.find( params[:id] ) || Business.new @business.attributes = params[:business] begin @business.save! flash[:notice] = params[:id] ? ''Business was successfully updated.'' : ''Business was successfully created.'' redirect_to :action => :edit_business_2, :id => @business rescue ActiveRecord::RecordInvalid => error flash[:notice] = error.to_s render :action => :edit_business_1, :id => @business end> end# model: ======= # should do without extra method... validates_length_of :legal_name, :minimum => 1 # unless do you have floating point zip... validates_numericality_of :zip, :only_integer => true Could not see any errors, but cleaned the code a little, hope this helps... Aren''t there any ActiveRecord messages? Regards Florian --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---