2011-09-12 4 views
0

rails 2.Xはバックスラッシュ(\)を2つのバックスラッシュ(\\)、if:条件は文字列です。これは、ハッシュ値が2つの場合にのみ、2つのバックスラッシュで置き換えられます。以下:ActiveRecord findオプションwith条件:バックスラッシュを二重バックスラッシュで置き換える方法\ if:条件がハッシュではなく文字列である

Parameter.find(:first, :conditions =>{ :key1 => var.to_s }) 

私の場合、条件はハッシュではなく文字列です。 gsub-functionを使用したくない場合、 "\\"を正しい方法で自動的に "\\"に置き換える方法は?

私の問題は、my:conditionsがバックスラッシュを含む非常に長い文字列であることです。そして異なる理由のために(オプションを含む...)。私はそれのためのハッシュを使用することはできません。次のfind-thingは "\"を自動的に "\\"に置き換えません。

var = "test\test" 

Parameter.find(:first, :conditions => ' key1 = \'' + var.to_s + '\'' ) 

ご迷惑をおかけいたしますが、ありがとうございます。

答えて

1

使用アレイ条件:

Parameter.first :conditions => ["key1 = ?", var] 

は、詳細はhttp://guides.rubyonrails.org/active_record_querying.html#array-conditionsを参照してください。

+0

Thanx、それは私の問題を解決する! – wabbiti

+0

Rails 3以降を使用している場合は、http://guides.rubyonrails.org/active_record_querying.html#array-conditionsが正しいリンクです。 –

+0

@ Vijay:ありがとう、私はまだ仕事場で2.3に固執しているので、私は古い文書にリンクしていることに気付かなかった。 – cam

関連する問題