質問

Rails 3.1へのアップグレードに備えて、MetawhereからSqueelに移行したいアプリケーションがあります。

これは主に単純なプロセスでしたが、少し問題を引き起こすケースが1つあります。問題は、変数として指定されたフィールドと値の両方を持っていることです。私のメタホアクエリでは、フィールド名からシンボルを単純に作成してからクエリで使用することができますが、スクイールはシンボルを使用せず、代わりにInstance_Evalに依存しています。

元のクエリのイラストは次のとおりです。

Article.where("#{field_name}".to_sym.matches => '%' + field_value + '%')

LiseIlで同様のクエリを作成するにはどうすればよいですか?

レガシーシンボル機能を使用したいことを指定できることは知っていますが、新しい構文に完全に変換したいと思います。

役に立ちましたか?

解決

これは機能します:

Article.where{article.send(field_name) =~ '%' + field_value + '%'}

小文字の「記事」がテーブル名です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top