在轨道上的红宝石中搜索困难

时间:2012-06-21 11:06:37

标签: ruby-on-rails ruby ruby-on-rails-3

如何在模型中首先搜索(我知道如何执行此操作)。然后在这个数组中搜索更多的具体结果?如你所见:

@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它没有任何提取。怎么说他之前和之后

  

搜索

可能就是一切?

3 个答案:

答案 0 :(得分:1)

像这样,也许?

 item.ART_ARTICLE_NR.include?(search.upcase)

答案 1 :(得分:1)

通过使用大写列名称不遵循rails命名约定,您会遇到麻烦。也就是说,rails3的方式可能是:

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

不知道@search是什么,很难确定。但是你应该阅读rails 3查询格式的active record guide

答案 2 :(得分:0)

这可能不是直截了当的答案,但你考虑过使用ransack宝石吗?