0

我怎样才能在模型中首先搜索(我知道怎么做)。然后在这个数组中搜索更具体的?如你所见:

@articles = Article.find(:all, :conditions => { :ART_ID => @search.map(&:ARL_ART_ID)})
@a = @articles.find_all{|item| item.ART_ARTICLE_NR == search.upcase }

首先我在模型中搜索,但由于我的数据库)它有很多错误的结果,所以我必须澄清我的数组。但是那里如何像 sql 一样搜索:

像 % %

现在它的搜索非常强大:如果我搜索 AC451,它很好,但如果是 AC45 或 C451,它什么都没有。怎么说他这样前后

搜索

可能是一切?

4

3 回答 3

1

像这样,也许?

 item.ART_ARTICLE_NR.include?(search.upcase)
于 2012-06-21T11:08:26.040 回答
1

您不遵循 Rails 命名约定和使用大写的列名是在自找麻烦。也就是说,rails3 的方法可能是:

@articles = Article.where(:ART_ID => @search.map(&:ARL_ART_ID)).where('ART_ARTICLE_NR LIKE', "%#{search.upcase}%")

在不知道@search 是什么的情况下,很难确定。但是您应该阅读有关rails 3 查询格式的活动记录指南。

于 2012-06-21T14:18:01.107 回答
0

这可能不是直截了当的答案,但是您是否考虑过使用ransack gem?

于 2012-06-21T11:13:48.797 回答