Tan_YL
(Tan YL)
#1
Hi, i was just wondering if its is possible to put a if statment

inside the find conditions

for example:

grovery_price = model.find(:first, :conditions => [ "if x = ? then y

must = ?", 200, 300]

I have been googling for some time for a solution to this but i just

can't seem to find any.

11175
(-- --)
#2
Tyl Tan wrote:

Hi, i was just wondering if its is possible to put a if statment

inside the find conditions

for example:

grovery_price = model.find(:first, :conditions => [ "if x = ? then y

must = ?", 200, 300]

I have been googling for some time for a solution to this but i just

can't seem to find any.

Does

:conditions => ["(x = ? and y = ?) or x <> ?", 200, 300, 200]

work?

11175
(-- --)
#3
Or is it just:

:conditions => ["(x = ? and y = ?)", 200, 300]

i.e., do you want the items where x != 200 or not?

Tan_YL
(Tan YL)
#4
If x equal 200 then I want the find to check that y is equal to 300 but if x is not equal to 200 there should be no check with y

11175
(-- --)
#5
Tyl Tan wrote:

If x equal 200 then I want the find to check that y is equal to 300 but

if x is not equal to 200 there should be no check with y

Well,

:conditions => ["x <> ? or (x = ? and y = ?)", 200, 200, 300]

If SQL short-circuits the logic, that shouldn't check y when x != 200

Tan_YL
(Tan YL)
#6
Thanks I'll try it out when I have the time