1

Rails 新手....仍在尝试掌握所有“方法”

表称为历史。

   @compa = History.scoped(:limit => 10,:conditions => {:name => "IBM"}, :order => "closedate ASC")

现在我想查找该表的 @compa 子集是否包含已关闭日期 = 特定日期的条目。我尝试了各种方法,但似乎没有任何效果。

例子:

if (@compa.has_value?(tmp))

不工作。

我应该在子集中工作,还是回到表并做一个新的范围?我怎样才能在子集中工作......我错过了一些我确定的东西。

4

1 回答 1

2

所以你会想要这样的东西:

if(@compa.include?(tmp))

要查看 @compa 是否具有值,tmp.

但是@compa包含非封闭属性。所以你会想要:

@compa.find{|o| o['closedate'] == tmp}

如果它不包含该值,这将返回 nil,否则它将返回具有closedate等于的对象tmp

但是为什么不使用 SQL 来处理这个:

由于@compa是 ActiveRecord 关系(因为您称为作用域),您可以通过执行以下操作来查询它:

@compa.where(:closedate => tmp).exists?

链接:

数组#include

可枚举#find

存在吗?

于 2011-04-18T23:16:19.590 回答