2017-10-02 11 views
0

私はRuby on RailsアプリケーションでRuby gem Globalize toを翻訳目的で使用しています。私はモデルRegionを持っています。これはnameの列を翻訳しています。など、領域テーブルを照会するためのActiveRecordを使用する場合:Ruby on RailsでGlobalize gemを使用した場合の未処理のSQLクエリ

Region.where(name: 'translated')

翻訳名前translatedと地域レコードが正しく返されます。

Region.where('name like ?', 'translated')

それは空ActiveRecord_Relationを返します。しかし、私は照会すると 。 SQL文字列でクエリを実行すると、Globalize gemを使用せずにデータベースレコードに直接アクセスするようです。

likeクエリを実行すると、変換されたレコードを取得できますか?

(私はグローバル化5.0.0とRails 4.2.8で働いています)

答えて

0

私は私のために働くようになったソリューションでした:

Region.with_translations(I18n.locale).where('region_translations.name like ?', "translated")

これはregion_translations.region_id = regions.id、どこI18n.locale = region_translations.locale

にregion_translationsテーブルを結合
0

あなたはこのようにそれを行うことができます。

Region.includes(:translations).where('name like ?', 'translated') 

この方法は、あなたがグローバル化から、変換テーブルへのアクセス権を持っています宝石。

関連する問題