2016-07-13 8 views
1

空白のない文字列と一致するすべてのレコードをdbから取得するにはどうすればよいですか?例えばアクティブレコードクエリー 'どこでスペースを無視するか'

デシベルレコード:"Hello beautiful world!"

与えられた文字列:name = "Hello beau tifulworld !"

は、アクティブレコードクエリとしてそれを作ることが可能ですか?

+1

これはActiveRecordの問題ではありません。おそらく、特定のデータベースが提供する正規表現のサポートを使用して、SQLの中でこれに対する解決策を見つけなければならず、生のSQLの行をActive Record Queryに渡す必要があります。ああ、私のdownvoteではない。 – jaydel

答えて

2

空白を含まない名前で検索できます。 (postgresのための)このような何か:

Model.where("replace(name, ' ', '') = replace(?, ' ', '')", 'Hello beau tifulworld !') 
+0

ありがとう、実際には私は次のように進んでいます: '' 'name ="こんにちは、beau tifulworld! " Model.where( "replace(name、 ''、 '')= replace(?, ''、 '')"、 "#{name}") '' ' – Zelenka

0

私の心に来る何があなたが両側からソートされた名前でレコードを検索することができるということです。 私は

record.name.chars.sort.joinのようなもので、最初のレコードの名前とIDを持つ新しい作成された配列にあなたはレコード名をソートし、意味とあなたも!Habdeefilllloortuuw"

を得るためにあなたの matching_word = "Hello beautiful world!"

を並べ替えます次に、このヘルパー名と一致するレコードのIDを取得できます。 次のステップでは、これらのレコードをデータベースから取得できます。

幸運を祈る!

関連する問題