Validate a select (boolean)

I am using
Ruby Version: 1.8.4
Rails Version: 1.2.2

I have an issue regarding validation of a boolean field in my
applicaiton.

On the UI, I had to show a dropdown with options: "yes", "no" and ""
(blank)

My HTML view contains:

<%= select 'guest', 'attending', [['Yes', true], ['No', false]],
{:include_blank => true, :custom_label => 'Will you be attending?'} %>

The view is rendered correctly.

The validation for this dropdown requires that blank is invalid. Only
"yes" or "no" are valid.

My Model (guest.rb) contains:

validates_inclusion_of (:attending, :in => [true, false])

The Issue is:

When I select blank in the UI dropdown component and post the form, the
validation succeeds and when the form is redisplayed 'No' is selected in
the dropdown. I see that in the database (MySQL) attending column,
false gets saved in that column.

How do I make validation to fail when blank is selected in the dropdown.

thanks,

···

--
Posted via http://www.ruby-forum.com/.

Try to pass to the validator :allow_blank => false

···

2008/6/13, Tahura Chaudhry <tahura@hotmail.com>:

I am using
Ruby Version: 1.8.4
Rails Version: 1.2.2

I have an issue regarding validation of a boolean field in my
applicaiton.

On the UI, I had to show a dropdown with options: "yes", "no" and ""
(blank)

My HTML view contains:

<%= select 'guest', 'attending', [['Yes', true], ['No', false]],
{:include_blank => true, :custom_label => 'Will you be attending?'} %>

The view is rendered correctly.

The validation for this dropdown requires that blank is invalid. Only
"yes" or "no" are valid.

My Model (guest.rb) contains:

validates_inclusion_of (:attending, :in => [true, false])

The Issue is:

When I select blank in the UI dropdown component and post the form, the
validation succeeds and when the form is redisplayed 'No' is selected in
the dropdown. I see that in the database (MySQL) attending column,
false gets saved in that column.

How do I make validation to fail when blank is selected in the dropdown.

thanks,

--
Posted via http://www.ruby-forum.com/\.

Tahura Chaudhry wrote:

I am using
Ruby Version: 1.8.4
Rails Version: 1.2.2

I have an issue regarding validation of a boolean field in my
applicaiton.

On the UI, I had to show a dropdown with options: "yes", "no" and ""
(blank)

My HTML view contains:

<%= select 'guest', 'attending', [['Yes', true], ['No', false]],
{:include_blank => true, :custom_label => 'Will you be attending?'} %>

The view is rendered correctly.

The validation for this dropdown requires that blank is invalid. Only
"yes" or "no" are valid.

My Model (guest.rb) contains:

validates_inclusion_of (:attending, :in => [true, false])

The Issue is:

When I select blank in the UI dropdown component and post the form, the
validation succeeds and when the form is redisplayed 'No' is selected in
the dropdown. I see that in the database (MySQL) attending column,
false gets saved in that column.

How do I make validation to fail when blank is selected in the dropdown.

thanks,

I'm beginning to think it has to do with with the Model field's (i.e
'attending' in guest.rb) mapping to the MySQL column ("attending") which
is declared in the schema as:

  (`attending` tinyint(1) unsigned default NULL)

I have tried debugging the code but can't seem to find the source of
this problem. Any ideas?

···

--
Posted via http://www.ruby-forum.com/\.

You can also use validates_presence_of, that will chech for the empty field

···

2008/6/13, Oscar Del Ben <thehcdreamer@gmail.com>:

Try to pass to the validator :allow_blank => false

2008/6/13, Tahura Chaudhry <tahura@hotmail.com>:

I am using
Ruby Version: 1.8.4
Rails Version: 1.2.2

I have an issue regarding validation of a boolean field in my
applicaiton.

On the UI, I had to show a dropdown with options: "yes", "no" and ""
(blank)

My HTML view contains:

<%= select 'guest', 'attending', [['Yes', true], ['No', false]],
{:include_blank => true, :custom_label => 'Will you be attending?'} %>

The view is rendered correctly.

The validation for this dropdown requires that blank is invalid. Only
"yes" or "no" are valid.

My Model (guest.rb) contains:

validates_inclusion_of (:attending, :in => [true, false])

The Issue is:

When I select blank in the UI dropdown component and post the form, the
validation succeeds and when the form is redisplayed 'No' is selected in
the dropdown. I see that in the database (MySQL) attending column,
false gets saved in that column.

How do I make validation to fail when blank is selected in the dropdown.

thanks,

--
Posted via http://www.ruby-forum.com/\.

Oscar Del ben wrote:

Try to pass to the validator :allow_blank => false

I tried that and it did not work.

···

2008/6/13, Tahura Chaudhry <tahura@hotmail.com>:

--
Posted via http://www.ruby-forum.com/\.

Oscar Del ben wrote:

You can also use validates_presence_of, that will check for the empty
field

If I use validate_presence_of then it the field is only considered valid
if 'Yes' (true) is selected. Selecting 'No' (false) results in
validation error.

After some reading this is what I found which is why I chose to use
validate_presence_of:

"If you want to validate the presence of a boolean field (where the real
values are true and false), you will want to use validates_inclusion_of
:field_name, :in => [true, false] This is due to the way Object#blank?
handles boolean values. false.blank? # => true"

···

2008/6/13, Oscar Del Ben <thehcdreamer@gmail.com>:

--
Posted via http://www.ruby-forum.com/\.