On Jun 26, 2012, at 6:23 PM, cyber c. wrote: > Hi Walter, > > The validate* methods works fine on the console. The function > object.valid? returns false if any of the validate method fails. For > that case object.valid? returns false even in the controller function, > but when i redirect to the same url, it doesn't show any errors from the > code
The errors are set in the event loop of reading the form submission and showing the results, but when you redirect, you start a new loop, and so unless you disrupt the cycle you seem to have set for yourself, you're never going to see those errors, because the errors -- and I suspect the object -- does not exist in the context of the page you redirected to. In a normal scaffold controller, you will see this pattern: def new @my_model = MyModel.new(params[:my_model]) end def create @my_model = MyModel.new(params[:my_model]) if @my_model.save redirect_to some_route(@my_model), :notice => 'Yay!' else render :action => 'new' end end If both sides of your test for save are redirects, then you have to set the :warn or :error flash to your errors, because they will not persist after the redirect. Especially because you're using Active Model, but particularly because you're in a #create method -- each time that runs, the model instance is created fresh from the supplied parameters, and it forgets all about the botched save. > > <%= f.error_messages %> > > In my view im not using any sort of this code > > <% flash.each do |name, msg| %> > <%= content_tag :div, msg, :id => "flash_#{name}" %> > <% end %> > > Do i need it? > It's what I use, it may be out of date, since I am using Rails 3.0 for this app that I copied it from. I believe that some of this was streamlined in 3.2. But I am also sure that you have to use /some/ sort of code to indicate where you want your errors to appear on your application layout file. Walter > -- > 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 rubyonrails-talk@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > -- 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@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.