1

params[:terms]Railsファンは、URLから収集されたコントローラーに渡される「もの」のハッシュに精通しています。例えば:

params
=> {"term"=>"Warren Buffet",
    "controller"=>"search",
    "format"=>"json",
    "action"=>"index"}

以下のコードで「WarrenBuffet」、「Warren」、「Buffet」を使用したい場合、代わりにどの方法を使用すべきか誰かが知っていますか? gsubは近いですが、元の文字列ではなく、各一致が必要です。私が間違っていない限り、それは完全に可能です:

@potential_investors = []
params [:term] .gsub(/(\ w {1、})/)do | term |
  @potential_investors << User.where(:investor => true)
  .order('first_name ASC、last_name ASC')
  .search_potential_investors(term)
終わり

考え?

4

2 に答える 2

2

どうですか:

s = "Filthy Rich"
s.split(" ").push(s)
>> ["Filthy", "Rich", "Filthy Rich"]

または、scan代わりに正規表現を使用する場合は、次のようにします。

s.scan(/\w+/).push(s)
>> ["Filthy", "Rich", "Filthy Rich"]
于 2012-05-28T23:11:24.953 に答える
1
params["term"].gsub(/(\w{1,})/)

列挙子を返します。これを配列に変換して、元の用語を追加することができます。

ary = params["term"].gsub(/(\w{1,})/).to_a + [params["term"]]

次にそれを処理します:

ary.each do |term|
...
于 2012-05-28T23:11:19.067 に答える