0

How can I search first in model (i know how to do this). And then search in this array for more concretence? As you see:

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

First i search in model, but thanks to my db) it have many wrong results, so i must to clarify my array. But there how to search like sql:

like % %

Now it search very strong: if i search AC451, it's good, but if AC45 or C451 it's nothing fetches. How to say him so that before and after

search

could be everything?

4

3 に答える 3

1

Like this, maybe?

 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 に答える