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 -~----------~----~----~----~------~----~------~--~---