我想做什么,
在“我的模型”中,我只想选择不等于(a或b) to的项。所以我就这么做了。
# This works
select { | item | item.attribute != a}.select {| item | item.attribute != b}
问题
这个链子起作用了,但是还有另一种方式来写吗?
如果我也想检查c和d会发生什么?我能在某个地方添加一些数组吗?
我不会一直用链子拴着吧?
后续问题
select
行将在我的模型中工作,但是当我试图将reject
行放到我的模型中时,会得到一个undefined method reject for #<Class>
class Model < ActiveRecord::Base
def self.foo
arr = [a,b]
reject { | item | arr.include?(item.attribute)}
end
end
我猜ActiveRecord不懂reject
?ActiveRecord有类似于SQL NOT LIKE
的方法吗?
发布于 2011-03-05 07:06:58
我们将说,items
是您正在使用#select
的项目数组。
arr = [a, b] # or [a, b, c, d]
items.reject { |item| arr.include?(item.attribute) }
这会将您的选择反转为拒绝,但拒绝等于(a或b)的项。
https://stackoverflow.com/questions/5204579
复制