# Checkboxes validation

**URL:** <https://www.ruby-forum.com/t/checkboxes-validation/104364>\
**Category:** Rails\
**Created:** [May 17, 2007, 6:49am UTC](https://www.ruby-forum.com/t/checkboxes-validation/104364 "2007-05-17T06:49:10Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![georgeuoa](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/7ab992/32.png) [@georgeuoa](https://www.ruby-forum.com/u/georgeuoa)\
**Post date:** [May 17, 2007, 6:49am UTC](https://www.ruby-forum.com/t/checkboxes-validation/104364/1 "2007-05-17T06:49:10Z")

</div>

Hi Guys  
i have this method for finding a list of items via check-boxes  
def selected  
conditions = [[]]  
params[:result].each do |result\_id|  
conditions.first \<\< ‘feature.uniquename=?’  
conditions \<\< result\_id  
end

```
     conditions[0] = conditions.first.join(' OR ')
     conditions=['1=1'] if conditions.empty?

     @items= Feature.find(:all, :conditions => conditions)
 end

```

however when no checkbox is checked and one hits the select button i  
get this error.  
“NoMethodError (You have a nil object when you didn’t expect it!  
You might have expected an instance of Array.  
The error occurred while evaluating nil.each):”

i would like to either trap the error and display it in a “friendly way”  
or not display anything at all.

i tried this in my view but it does not seem to help  
\<% if @items.length \> 0 %\>

\<removed\_email\_address@domain.invalid do|item|%\>  
**\>\<%=item.uniquename%\>**  
\<%end%\>

\<%else%\>  
**no selection**  
\<%end%\>

Thank you.

---

<div class="post-metadata">

**Author:** ![georgeuoa](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/7ab992/32.png) [@georgeuoa](https://www.ruby-forum.com/u/georgeuoa)\
**Post date:** [May 17, 2007, 7:11am UTC](https://www.ruby-forum.com/t/checkboxes-validation/104364/2 "2007-05-17T07:11:39Z")

</div>

```
 def selected
     conditions = [[]]
     params[:result].each do |result_id|
         conditions.first << 'feature.uniquename=?'
         conditions << result_id
     end if params[:result]

      conditions[0] = conditions.first.join(' OR ')
      conditions=['1=1'] if conditions.first.empty?

      @items= Feature.find(:all, :conditions => conditions)
  end
```

---

<div class="post-metadata">

**Author:** ![georgeuoa](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/7ab992/32.png) [@georgeuoa](https://www.ruby-forum.com/u/georgeuoa)\
**Post date:** [May 17, 2007, 7:13am UTC](https://www.ruby-forum.com/t/checkboxes-validation/104364/3 "2007-05-17T07:13:34Z")

</div>

i meant

```
  def selected
      conditions = [[]]
      params[:result].each do |result_id|
          conditions.first << 'feature.uniquename=?'
          conditions << result_id
      end if params[:result]

       conditions[0] = conditions.first.join(' OR ')
       conditions=['1=1'] if !conditions.first or conditions.first 

```

== ‘’

```
       @items= Feature.find(:all, :conditions => conditions)
   end
```

---

<div class="post-metadata">

**Author:** ![georgeuoa](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/7ab992/32.png) [@georgeuoa](https://www.ruby-forum.com/u/georgeuoa)\
**Post date:** [May 17, 2007, 7:46am UTC](https://www.ruby-forum.com/t/checkboxes-validation/104364/4 "2007-05-17T07:46:55Z")

</div>

Keynan P. wrote:

> i meant
> 
> ```
> def selected
> conditions = [[]]
> params[:result].each do |result_id|
> conditions.first << 'feature.uniquename=?'
> conditions << result_id
> end if params[:result]
> 
> conditions[0] = conditions.first.join(' OR ')
> conditions=['1=1'] if !conditions.first or conditions.first 
> 
> ```
> 
> == ‘’
> 
> ```
> @items= Feature.find(:all, :conditions => conditions)
> end
> 
> ```

Thanks Keynan!  
How would i pass a message to the user informing him to make a  
selection?  
This is because with no selection the method seems make the browser  
hang, till i manually stop the execution.

---

<div class="post-metadata">

**Author:** ![georgeuoa](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/7ab992/32.png) [@georgeuoa](https://www.ruby-forum.com/u/georgeuoa)\
**Post date:** [June 4, 2007, 8:12am UTC](https://www.ruby-forum.com/t/checkboxes-validation/104364/5 "2007-06-04T08:12:18Z")

</div>

the browser should not be hanging. pop in a few logger.debug statements  
to find where your trapped in a loop.

As for notifying the user

def selected  
conditions = [[]]  
if params[:result]  
params[:result].each do |result\_id|  
conditions.first \<\< ‘feature.uniquename=?’  
conditions \<\< result\_id  
end  
else  
flash[:notice] = ‘Please select a feature name.’  
end

```
       conditions[0] = conditions.first.join(' OR ')
       conditions=['1=1'] if !conditions.first or conditions.first

```

== ‘’

```
       @items= Feature.find(:all, :conditions => conditions)
   end
```
