0

:conditions が文字列の場合、Rails 2.X がバックスラッシュ (\) を 2 つのバックスラッシュ (\\) に置き換えないという問題があります。:conditions のハッシュがある場合にのみ、2 つのバックスラッシュに置き換えます。たとえば、次のようになります。

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

しかし、私の場合、 :conditions はハッシュではなく文字列です。gsub-function を使用したくない場合、「\」を正しい方法で「\\」に自動的に置き換えるにはどうすればよいですか?

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

var =  "test\test"

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

役立つヒントをいただければ幸いです。ありがとうございます。

4

1 に答える 1

1

配列条件を使用:

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

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

于 2011-09-12T15:27:38.473 に答える