Hello RoR World-
i''ve defined a number of string arrays in /lib/valid.rb which
i''m
using to validate input for various fields, e.g.
module VALID
TITLES = [ ''Mr.'', ''Mrs.'',
''Ms.'', ''Dr.'', ''Sir'',
''RoRN00b'', ''PhD.'',
''DHH'' ]
end
In my models I''ve done the following, which is working great for my
validations:
(from .../models/client.rb)
include VALID
validates_inclusion_of :title,
:in => TITLES,
:message => ''%s is Invalid - please enter a valid
Title.''
Now I''d like to simplify my user''s lives by utilizing these
same
constants as the basis of my collection_selects in my assorted
partials, e.g.
(from .../views/clients/_form.erb)
<%= form.collection_select( :title, TITLES.all, TITLES[], TITLES[] )%>
My two questions:
1. I''m receiving the error:
uninitialized constant ActionView::Base::CompiledTemplates::TITLES
despite having my obligatory ''include VALID'' statement in my
client.rb
model; tried adding to controller, no joy.
_help_.
2. I''m sure my collection_select syntax above is broken; if/when i
get past the unintialized constant error i''m sure I can sort it
relatively quickly (i hope), but if anyone''s done this before and
cares to share their code-fu I''d appreciate it.
Thanks much-
--Jeff Coon
Believe that
<%= form.select( :title, options_for_select(TITLE), { :prompt =>
true } ) should work, if I can get the TITLES constant to be
recognized...
Thoughts?
Thanks-
--Jeff
Matt Jones
2009-Apr-26 15:24 UTC
Re: form.collection_select utilizing CONSTANT string array?
The containing module for the ERB code isn''t the model or the controller, it''s part of ActionView::Base. Try explicitly qualifying the constant as Client::TITLES. Also, module names are not traditionally spelled in all-caps, but that''s just a style thing. --Matt Jones On Apr 24, 5:52 pm, Coondog <jefec...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Believe that > <%= form.select( :title, options_for_select(TITLE), { :prompt => > true } ) should work, if I can get the TITLES constant to be > recognized... > > Thoughts? > > Thanks- > --Jeff
Hi Matt-
Thanks much -- qualifying fixed it.
<%= f.select( :title, Contact::TITLES, { :prompt => true } )
%><br />
Really appreciate the quick tip-
--Jeff
On Apr 26, 8:24 am, Matt Jones
<al2o...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> The containing module for the ERB code isn''t the model or the
> controller, it''s part of ActionView::Base.
>
> Try explicitly qualifying theconstantas Client::TITLES.
>
> Also, module names are not traditionally spelled in all-caps, but
> that''s just a style thing.
>
> --Matt Jones
>
> On Apr 24, 5:52 pm, Coondog
<jefec...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> > Believe that
> > <%= form.select( :title, options_for_select(TITLE), { :prompt =>
> > true } ) should work, if I can get the TITLESconstantto be
> > recognized...
>
> > Thoughts?
>
> > Thanks-
> > --Jeff