Hi there I''m wanting to re-render my index action in the event of an object not getting saved; I use render not redirect so as to preserve the validation errors. I''m using the error_messages_for helper in my view but I get a nil.errors error when I attempt to display the view. I can avoid this error by setting up @discount = Discount.new in my index action, but this obliterates the instance variable with the attached error messages. I''m chasing my tail on this and any clues would be appreciated. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
bongoman wrote:> I''m wanting to re-render my index action in the event of an object not > getting saved; I use render not redirect so as to preserve the > validation errors. > > I''m using the error_messages_for helper in my view but I get a > nil.errors error when I attempt to display the view. > > I can avoid this error by setting up @discount = Discount.new in my > index action, but this obliterates the instance variable with the > attached error messages. > > I''m chasing my tail on this and any clues would be appreciated.Hear galloping think horses not zebras, here... Your action goes like... @discount = Discount.new(params[:discount]) # warning use attr_protected! unless @discount.save render :action => ''index'' end So... uh... @discount indeed contains a stuffed Discount instance with populated errors... so what''s the problem?? So post your actual action instead of making us guess? (-8 --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
> So... uh... @discount indeed contains a stuffed Discount instancewith populated> errors... so what''s the problem??Well it only does when the index template is rendered AFTER validation fails. The same action gets invoked prior to the form submission at which point in time there is no @discount variable, hence the nil.errors> So post your actual action instead of making us guess? (-8Here we go: @discount = Discount.find(params[:id]) if @discount.update_attributes(params[:discount]) flash[:notice_good] = "Discounts have been updated" redirect_to :action=> ''index'' else index # I need to do this in order to get my instance variables populated for the index view render :action => ''index'' end --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
> Here we go: > > @discount = Discount.find(params[:id]) > if @discount.update_attributes(params[:discount]) > flash[:notice_good] = "Discounts have been updated" > redirect_to :action=> ''index'' > else > index # I need to do this in order to get my instance variables > populated for the index viewand ... index re-populates @discount? put this inside the index: @discount ||= Discount.new> render :action => ''index'' > end--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---