2013-07-09 38 views
0

我有一個哈希值,其中我使用一個SQL查詢如何把「不爲空」作爲散列值?

:profiles => {:gender => Female, :idea => ''} 

,現在安裝的方式,它正在尋找與性別女和一個空的想法輪廓。意思是想法列中的字符串是空的。我如何得到這是完全相反的。我想查找想法列不是空的行。

注:我不是因爲字符串爲空而不是NOT_NULL而不是NULL。

+0

你有什麼不是哈希。它不是一個有效的Ruby對象。 – sawa

+2

爲什麼這個問題值得讚賞? – simonmorley

回答

3

散列本身沒有辦法表達它,但是你可以使用查詢其他風格之一,例如,

Profile.where("gender = ? and idea != ''", gender) 

,或者如果您升級到Rails的4您可以使用not方法反轉的條件。例如

Profile.where.not(idea: '') 

並且您可以將多個where呼叫例如

Profile.where(gender: 'Female').where.not(idea: '') 
+3

問題標籤爲ruby-on-rails-3。是不是在rails-4中添加的「不」功能? – Arjan

+0

@Arjan我認爲你是對的。我會更新答案。 – mikej

0

我不認爲這可以用哈希來完成。然而

,你可以:

where('gender != ? OR gender IS NOT ?', '', nil) 
+0

我希望IDEA列不爲空。 – pratski

+0

好的,更新我的答案。 – Arjan

1

您可能正在尋找的String.Empty!?

+0

'string.present?' – Arjan

相關問題