首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果这两个值不存在,则进行Ruby比较

如果这两个值不存在,则进行Ruby比较
EN

Stack Overflow用户
提问于 2011-03-05 15:00:13
回答 1查看 125关注 0票数 0

我想做什么,

在“我的模型”中,我只想选择不等于(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的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2011-03-05 15:06:58

我们将说,items是您正在使用#select的项目数组。

代码语言:javascript
代码运行次数:0
运行
复制
arr = [a, b] # or [a, b, c, d]
items.reject { |item| arr.include?(item.attribute) }

这会将您的选择反转为拒绝,但拒绝等于(a或b)的项。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5204579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档