# Testing for nil numeric value in find

**URL:** <https://www.ruby-forum.com/t/testing-for-nil-numeric-value-in-find/98083>\
**Category:** Rails\
**Created:** [January 27, 2006, 10:47pm UTC](https://www.ruby-forum.com/t/testing-for-nil-numeric-value-in-find/98083 "2006-01-27T22:47:59Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![James\_BSByrne](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/838e76/32.png) [@James\_BSByrne](https://www.ruby-forum.com/u/James_BSByrne)\
**Post date:** [January 27, 2006, 10:47pm UTC](https://www.ruby-forum.com/t/testing-for-nil-numeric-value-in-find/98083/1 "2006-01-27T22:47:59Z")

</div>

In the agile/rails tutorial book the following construct is added  
to products.rb.

def self.salable\_items  
find( :all,  
:conditions =\> “date\_available \<= now()”,  
:order =\> “date\_available desc”)  
end

Now, I wish to extend :conditions =\> to exclude products that have  
a nil value for the price. I have tried different syntax using  
“price.nil?”, “not”, and “!”, but have not hit upon the right  
combination. Can someone show me the way?

Regards,  
Jim

–  
\*\*\* e-mail is not a secure channel \*\*\*  
mailto:byrnejb.@harte-lyne.ca  
James B. Byrne Harte & Lyne Limited  
vox: +1 905 561 1241 9 Brockley Drive  
fax: +1 905 561 0757 Hamilton, Ontario  
 = hal Canada L8E 3C3

---

<div class="post-metadata">

**Author:** ![James\_BSByrne](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/838e76/32.png) [@James\_BSByrne](https://www.ruby-forum.com/u/James_BSByrne)\
**Post date:** [January 27, 2006, 10:54pm UTC](https://www.ruby-forum.com/t/testing-for-nil-numeric-value-in-find/98083/2 "2006-01-27T22:54:05Z")

</div>

Hi,  
I haven’t tested this, but I think it should work.

def self.salable\_items  
find( :all,  
:conditions =\> [“(date\_available \<= ?) AND (price \<\>  
|NULL|)”,Time.now()],  
:order =\> “date\_available desc”)  
end

Eric

James B. Byrne wrote:

> Now, I wish to extend :conditions =\> to exclude products that have  
> James B. Byrne Harte & Lyne Limited  
> vox: +1 905 561 1241 9 Brockley Drive  
> fax: +1 905 561 0757 Hamilton, Ontario  
> = hal Canada L8E 3C3
> 
> * * *
> 
> Rails mailing list  
> removed\_email\_address@domain.invalid  
> [http://lists.rubyonrails.org/mailman/listinfo/rails](http://lists.rubyonrails.org/mailman/listinfo/rails)

–  
Eric G.  
[http://www.ericgoodwin.com](http://www.ericgoodwin.com)

---

<div class="post-metadata">

**Author:** ![James\_BSByrne](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/838e76/32.png) [@James\_BSByrne](https://www.ruby-forum.com/u/James_BSByrne)\
**Post date:** [January 27, 2006, 10:57pm UTC](https://www.ruby-forum.com/t/testing-for-nil-numeric-value-in-find/98083/3 "2006-01-27T22:57:07Z")

</div>

Disregard the pipes in the statement, I think my editor added them in by  
accident.

Eric G. wrote:

> Eric
> 
> > ```
> > :order => "date_available desc")
> > 
> > ```
> > 
> > [http://lists.rubyonrails.org/mailman/listinfo/rails](http://lists.rubyonrails.org/mailman/listinfo/rails)

–  
Eric G.  
[http://www.ericgoodwin.com](http://www.ericgoodwin.com)

---

<div class="post-metadata">

**Author:** ![James\_BSByrne](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/838e76/32.png) [@James\_BSByrne](https://www.ruby-forum.com/u/James_BSByrne)\
**Post date:** [January 27, 2006, 10:57pm UTC](https://www.ruby-forum.com/t/testing-for-nil-numeric-value-in-find/98083/4 "2006-01-27T22:57:07Z")

</div>

def self.salable\_items  
find( :all,  
:conditions =\> “date\_available \<= now() && price \> 0”,  
:order =\> “date\_available desc”)  
end

Since price is defined as not null and a decimal, its default value will  
be  
0.00 (I think). Adding an SQL check for price \> 0 will give what you  
want.

Bob S.  
[http://www.railtie.net/](http://www.railtie.net/)
