I need a little advice on how to best set things up. I have a model where I will have a short form and a longer form in two different places in my application. Obviously, I would like to apply validating rules to both forms. The short form is a subset of the fields in the model. The long form is the full model so it isn''t a problem. What are my options? (1) There is functionality in the models that I don''t know about to handle this situation. (2) I should create a second model for the extra fields between the short and long forms, using the same database table. (3) I should create a second model for the extra fields between the short and long forms, using a different database table and a has_one association. (4) Any other suggestions? Thanks. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
It''s kind of unclear about what you are trying to do here. Say you have a model like so: class Customer < ActiveRecord::Base # contains attributes :fname, :lname, :phone, :city, :state, :zip validates_presence_of :fname, :lname, :phone, :zip end This model will validate the presence of the 4 fields (:fname, :lname, :phone, :zip). Would this be comparable to the "longer" version? If so, would the shorter version be required to ONLY validate a subset of the validates_presence_of list? Perhaps only :fname & :lname? If this is the case you can just set the default validations to the short list like so: validates_presence_of :fname, :lname In order to get the long validation, you can do this with your model: class Customer < ActiveRecord::Base # contains attributes :fname, :lname, :phone, :city, :state, :zip validates_presence_of :fname, :lname @long_validation attr_accessor :long_validation def validate if @long_validation errors.add("phone number cannot be blank") if phone.blank? errors.add("zip code cannot be blank") if zip.blank? end end end Test this using your script/console from the terminal. HTH, Aldo Sarmiento Dowker wrote:> I need a little advice on how to best set things up. I have a model > where I will have a short form and a longer form in two different > places in my application. Obviously, I would like to apply validating > rules to both forms. The short form is a subset of the fields in the > model. The long form is the full model so it isn''t a problem. What are > my options? > > (1) There is functionality in the models that I don''t know about to > handle this situation. > (2) I should create a second model for the extra fields between the > short and long forms, using the same database table. > (3) I should create a second model for the extra fields between the > short and long forms, using a different database table and a has_one > association. > (4) Any other suggestions? > > Thanks.-- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Ack! Forgot to mention, that now you can do this in the controller when loading the ActiveRecord object: def some_action @customer = Customer.find_by_id(1) #however you are loading the object @customer.long_validation = true # now you can use @customer in your form_for @customer in the view! end HTH, Aldo Sarmiento Aldo Sarmiento wrote:> It''s kind of unclear about what you are trying to do here. Say you have > a model like so: > > class Customer < ActiveRecord::Base > # contains attributes :fname, :lname, :phone, :city, :state, :zip > validates_presence_of :fname, :lname, :phone, :zip > end > > This model will validate the presence of the 4 fields (:fname, :lname, > :phone, :zip). Would this be comparable to the "longer" version? > > If so, would the shorter version be required to ONLY validate a subset > of the validates_presence_of list? Perhaps only :fname & :lname? > > If this is the case you can just set the default validations to the > short list like so: > > validates_presence_of :fname, :lname > > In order to get the long validation, you can do this with your model: > > class Customer < ActiveRecord::Base > # contains attributes :fname, :lname, :phone, :city, :state, :zip > validates_presence_of :fname, :lname > > @long_validation > attr_accessor :long_validation > > def validate > if @long_validation > errors.add("phone number cannot be blank") if phone.blank? > errors.add("zip code cannot be blank") if zip.blank? > end > end > end > > Test this using your script/console from the terminal. > > HTH, > Aldo Sarmiento > > Dowker wrote: >> I need a little advice on how to best set things up. I have a model >> where I will have a short form and a longer form in two different >> places in my application. Obviously, I would like to apply validating >> rules to both forms. The short form is a subset of the fields in the >> model. The long form is the full model so it isn''t a problem. What are >> my options? >> >> (1) There is functionality in the models that I don''t know about to >> handle this situation. >> (2) I should create a second model for the extra fields between the >> short and long forms, using the same database table. >> (3) I should create a second model for the extra fields between the >> short and long forms, using a different database table and a has_one >> association. >> (4) Any other suggestions? >> >> Thanks.-- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Thanks Aldo. That was exactly what I was trying to communicate. Sorry if I was not clearer. On Jan 23, 3:49 pm, Aldo Sarmiento <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> It''s kind of unclear about what you are trying to do here. Say you have > a model like so: > > class Customer < ActiveRecord::Base > # contains attributes :fname, :lname, :phone, :city, :state, :zip > validates_presence_of :fname, :lname, :phone, :zip > end > > This model will validate the presence of the 4 fields (:fname, :lname, > :phone, :zip). Would this be comparable to the "longer" version? > > If so, would the shorter version be required to ONLY validate a subset > of the validates_presence_of list? Perhaps only :fname & :lname? > > If this is the case you can just set the default validations to the > short list like so: > > validates_presence_of :fname, :lname > > In order to get the long validation, you can do this with your model: > > class Customer < ActiveRecord::Base > # contains attributes :fname, :lname, :phone, :city, :state, :zip > validates_presence_of :fname, :lname > > @long_validation > attr_accessor :long_validation > > def validate > if @long_validation > errors.add("phone number cannot be blank") if phone.blank? > errors.add("zip code cannot be blank") if zip.blank? > end > end > end > > Test this using your script/console from the terminal. > > HTH, > Aldo Sarmiento > > > > Dowker wrote: > > I need a little advice on how to best set things up. I have a model > > where I will have a short form and a longer form in two different > > places in my application. Obviously, I would like to apply validating > > rules to both forms. The short form is a subset of the fields in the > > model. The long form is the full model so it isn''t a problem. What are > > my options? > > > (1) There is functionality in the models that I don''t know about to > > handle this situation. > > (2) I should create a second model for the extra fields between the > > short and long forms, using the same database table. > > (3) I should create a second model for the extra fields between the > > short and long forms, using a different database table and a has_one > > association. > > (4) Any other suggestions? > > > Thanks. > > -- > Posted viahttp://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 -~----------~----~----~----~------~----~------~--~---