ActiveRecord найти вариант с: условия: как заменить обратную косую черту \ с двойной обратной косой чертой \\ если: условия это строка вместо хеша - PullRequest
0 голосов
/ 12 сентября 2011

У меня проблема в том, что rails 2.X не заменяет обратную косую черту (\) двумя обратными косыми чертами (\\), если: условие - строка. Он заменяет его только двумя обратными слешами, когда у вас есть хеш для: условий, например следующее:

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

Но в моем случае: условия - это не хеш, а строка. Как он может автоматически заменить «\» правильно на «\\», если я не хочу использовать gsub-функцию?

Моя проблема в том, что my: condition - это очень длинная строка, которая содержит обратную косую черту. И по разным причинам (включите опцию, ...). Я не могу использовать хеш для этого. Следующая находка не заменяет «\» автоматически на «\\».

var =  "test\test"

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

Я был бы благодарен за любую полезную подсказку, спасибо.

1 Ответ

1 голос
/ 12 сентября 2011

Использовать условия массива:

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

Подробнее см. http://guides.rubyonrails.org/active_record_querying.html#array-conditions.

...