Say controller x, action a has a form on it that submits to controller y, action b, and validation fails during the submit. I want to display the result of controller x, action a with the validation messages. In psuedocode, I am here: '' controller y action b if !item.save # Do something here end end I''m having trouble with the do somethign here section. I tried "render :template ''x/A''" but that didn''t load all the required information. What is the best practice for cross controller validation failures? Thanks Jim Englert. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
http://guides.rubyonrails.org/activerecord_validations_callbacks.html Start with this to get yourself familiar with how validation_callbacks work. Generally, if you are using a form in a view (form_for as an example) you have a form that is backed by the model. Therefore, you are placing the validation checks in the model, not the controller. Viewer -- has form_for... Controller -- Model -- validates_presence_of :name -- validates_..._ .. etc Depending on the type of validation you provide in the model, rails will automatically catch the error if it occurs. Keep in mind that if you are using form_tag you cannot perform model validation callbacks because that form is not backed by a model. You''d have to use javascript, or something else to do validation checks. -- Posted via http://www.ruby-forum.com/.
Each case you will have one approach that better resolve your needs. Firstly, you should avoid this kind of situation, off course this is not possible always but if you do RESTFul apps this kind of situation is not so usual. Well, going direct to your problem, you should load all dependencies on second controller, and yes, this lead you to an not DRY environment. First, you should not have many variables being assigned per action, this is a bad practice, anyway, you can have a module to encapsulate filters included in both controllers... this can sound not practical, but in truth this avoid you to forget to alter the behavior in one side without affect the other... I want that this tip was helpful ;) On Thu, Jul 2, 2009 at 1:26 AM, James Englert <englert.james-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>wrote:> Say controller x, action a has a form on it that submits to controller y, > action b, and validation fails during the submit. I want to display the > result of controller x, action a with the validation messages. > > In psuedocode, I am here: > > '' > controller y > > action b > if !item.save > # Do something here > end > end > > I''m having trouble with the do somethign here section. I tried "render > :template ''x/A''" but that didn''t load all the required information. What is > the best practice for cross controller validation failures? > > Thanks > Jim Englert. > > > >-- Everton J. Carpes Mobile: +55 53 9129.4593 MSN: maskejc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org UIN: 343716195 Jabber: everton.carpes-/eSpBmjxGS4dnm+yROfE0A@public.gmane.org Twitter: http://twitter.com/everton_carpes Blog: http://www.geek.com.br/blogs/832697633-My-Way Feeds: https://www.google.com/reader/shared/05200358440305782625 "If art interprets our dreams, the computer executes them in the guise of programs!" - Alan J. Perlis --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Thats pretty much what I have. Problem is, I still need code in the controller I am submitting to that looks like this: if !item.save # Handle save validation failure end Are you saying that I should not need code like that in my submit controller? If so, is there anything special that needs to occur for this to work? Thanks, On Thu, Jul 2, 2009 at 12:36 AM, Älphä Blüë < rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> > http://guides.rubyonrails.org/activerecord_validations_callbacks.html > > Start with this to get yourself familiar with how validation_callbacks > work. Generally, if you are using a form in a view (form_for as an > example) you have a form that is backed by the model. Therefore, you > are placing the validation checks in the model, not the controller. > > Viewer > -- has form_for... > Controller > -- > Model > -- validates_presence_of :name > -- validates_..._ .. etc > > Depending on the type of validation you provide in the model, rails will > automatically catch the error if it occurs. > > Keep in mind that if you are using form_tag you cannot perform model > validation callbacks because that form is not backed by a model. You''d > have to use javascript, or something else to do validation checks. > > > > > -- > 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---