On Monday, April 30, 2018 at 8:49:20 AM UTC-4, Walter Lee Davis wrote:
>
>
> > On Apr 30, 2018, at 5:07 AM, fugee ohu <fuge...@gmail.com <javascript:>> 
> wrote: 
> > 
> > I've been putting options for select lists in my models but I haven't 
> been able to do this with option/value pairs Anyone know how? The code 
> below doesn't work 
> > 
> >   DURATION_TYPES =  [['7 days', '7' ],['14 days', '14'], ['21 
> days','21'], ['30 days','30']] 
> >   validates :duration, inclusion: { in: DURATION_TYPES } 
> > 
> > 
>
> When this validator runs, what is it comparing? The label or the value? 
> You are passing a combination of the two into your validator and expecting 
> it to guess. You could try either using a hash for the data structure, and 
> being explicit about what you want it to compare: 
>
> DURATION_TYPES = {'7 days' => 7, '14 days' => 14 ... } 
> validates :duration, inclusion: { in: DURATION_TYPES.values } 
>
> or you could extract just the second value out each pair (using your 
> existing nested array): 
>
> validates :duration, inclusion: { in: DURATION_TYPES.map(&:last) } 
>
> Please google "Ruby symbol to Proc" to better understand how that last one 
> works. If you use the first approach, then you will need to change the way 
> you access the constant's values in your select list constructor. 
>
> Walter 
>
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups "Ruby on Rails: Talk" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to rubyonrails-ta...@googlegroups.com <javascript:>. 
> > To post to this group, send email to rubyonra...@googlegroups.com 
> <javascript:>. 
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/rubyonrails-talk/c04d58fa-0e5b-42f8-8d80-20375f07f98c%40googlegroups.com.
>  
>
> > For more options, visit https://groups.google.com/d/optout. 
>
> Before being able to continue with option/value pairs I actually can't get 
this working in a simpler way just the options and values being the same, I 
still get 'not included in the list' error In my schema, duration is a 
string column

  DURATION_TYPES = ['7 days', '14 days'] 
  validates :duration, inclusion: DURATION_TYPES

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/6533f9ee-3031-4936-bf09-aeb58773e12b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to