在Rails 4中查找包含排除项的所有条目

时间:2014-01-21 17:28:58

标签: ruby-on-rails regex activerecord ruby-on-rails-4 find

我有一个名为“image”的模型,我需要找到所有图像,但图像名称属性中包含“User”表达的图像除外。

Image.rb:

class Image < ActiveRecord::Base
  attr_accessible :name
end

所以,它应该是这样的:

@images = Image.where(“name!=〜'/ user / i'”)

正确的用语是什么?

4 个答案:

答案 0 :(得分:1)

Rails 4中的PostgreSQL:

Image.where.not("name ~ ?", "User")

MySQL in Rails 4:

Image.where.not("name RLIKE ?", "User")

答案 1 :(得分:0)

@images = Image.where.not(name: user)

或者如果“user”是字符串:

@images = Image.where.not(name: "user")

答案 2 :(得分:0)

试试这个

@images = Image.where.not(“name ='user'”)

答案 3 :(得分:0)

如果你使用squeel gem(https://github.com/activerecord-hackery/squeel),那么你可以这样做:

exclusion_value = "user"
Image.where{name !~ exclusion_value}