如何将“Is not empty”作为哈希值?

时间:2013-07-09 09:34:13

标签: sql ruby-on-rails ruby ruby-on-rails-3

我有一个哈希,我用它来进行SQL查询

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

现在设置它的方式,它正在寻找性别女性和空想法的配置文件。意味着idea列中的字符串为空。我如何得到这恰恰相反。我想找到想法列不为空的行。

注意:我不是在寻找IS NOT NULL,因为字符串是空的而不是NOT_NULL。

3 个答案:

答案 0 :(得分:3)

没有办法在散列本身内表达这一点,但你可以使用其他一种查询方式,例如。

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

或者如果升级到Rails 4,则可以使用not方法来反转条件。 e.g。

Profile.where.not(idea: '')

您可以合并多个where次来电,例如

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

答案 1 :(得分:1)

您可能正在寻找!string.empty?

答案 2 :(得分:0)

我认为这不能用哈希来完成。

但是你可以:

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