2011-10-14 3 views
0

Может кто-нибудь помочь мне, почему следующий SQL-оператор не будет сохранен в переменной @var? После этого оператора переменная должна иметь значение «ДА» или «НЕТ».find_by_sql и select case

SQL

SELECT CASE WHEN MAX(user_id) IS NULL THEN 'NO' ELSE 'YES' END User_exists 
FROM user_id_table 
WHERE user_id = 'some_user'; 

Я нашел это заявление here.

Рубин на Rails

@var = Test.find_by_sql("SELECT CASE WHEN MAX(user_id) IS NULL THEN 'NO' ELSE 'YES' END user_exists 
FROM user_id_table 
WHERE user_id = 'some_user'") 
+0

Попробуйте использовать 'ActiveRecord :: Base.connection.execute' вместо' find_by_sql' – Bohdan

+0

Не знаю почему, но это всегда возвращает true ...? – shub

ответ

0

Решение ActiveRecord::Base.connection.select_rows().