# Right way to access an array passed as an argument?

**URL:** <https://www.ruby-forum.com/t/right-way-to-access-an-array-passed-as-an-argument/128666>\
**Category:** Ruby\
**Created:** [February 10, 2008, 3:11am UTC](https://www.ruby-forum.com/t/right-way-to-access-an-array-passed-as-an-argument/128666 "2008-02-10T03:11:08Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![laredotornado](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9dc877/32.png) [@laredotornado](https://www.ruby-forum.com/u/laredotornado)\
**Post date:** [February 10, 2008, 3:11am UTC](https://www.ruby-forum.com/t/right-way-to-access-an-array-passed-as-an-argument/128666/1 "2008-02-10T03:11:08Z")

</div>

Hi,

In my user model class, I have:

class User \< ActiveRecord::Base  
…  
def self.search(search)  
conditions = []  
if !  
search[:user\_type\_id].is\_empty? # line  
26  
conditions \<\< ‘user\_type\_id = ?’ \<\<  
“#{search[:user\_type\_id]}”  
end  
if !search[:ship\_to\_first\_name].is\_empty?  
conditions \<\< ‘ship\_to\_first\_name LIKE ?’ \<\<  
“%#{search[:ship\_to\_first\_name]}%”  
end  
if !search[:ship\_to\_last\_name].is\_empty?  
conditions \<\< ‘ship\_to\_last\_name LIKE ?’ \<\<  
“%#{search[:ship\_to\_last\_name]}%”  
end  
find(:all, :conditions =\> conditions )  
end

I am passing my “params” array to this function. The array params  
contains a hidden field, “user\_type\_id,” that is always defined. But  
when I execute the above, I get the error

You have a nil object when you didn’t expect it!  
The error occurred while evaluating nil.is\_empty?  
RAILS\_ROOT: /usr/local/apache2/htdocs/easyrx  
Application Trace | Framework Trace | Full Trace  
app/models/user.rb:26:in `search' app/controllers/super_admin/subscriber_controller.rb:15:in`searchresults’

so I’m thinking “search[:user\_type\_id]” is not the right way to access  
the parameter value. If I try “:search[:user\_type\_id]”, I also get  
the error.

Thanks for any help, - Dave

---

<div class="post-metadata">

**Author:** ![laredotornado](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9dc877/32.png) [@laredotornado](https://www.ruby-forum.com/u/laredotornado)\
**Post date:** [February 10, 2008, 3:16am UTC](https://www.ruby-forum.com/t/right-way-to-access-an-array-passed-as-an-argument/128666/2 "2008-02-10T03:16:59Z")

</div>

You probably want is\_blank? since search[:user\_type\_id] is a value.  
is\_blank? returns true if nil or an empty string  
is\_empty? returns true if the array has no elements
