在Ruby on Rails中使用Globalize gem时的原始SQL查询

时间:2017-10-02 01:48:58

标签: ruby-on-rails ruby activerecord globalize

我在Ruby on Rails应用程序中使用ruby gem Globalize进行翻译。我有一个模型Region,我正在翻译name列。使用ActiveRecord查询区域表时,例如:

Region.where(name: 'translated')

正确返回翻译名称为translated的区域记录。 但是,当我查询时:

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

它返回一个空的ActiveRecord_Relation。似乎查询SQL字符串直接访问数据库记录而不使用Globalize gem。

如何执行将检索已翻译记录的like个查询?

(我正在使用Globalize 5.0.0和Rails 4.2.8)

2 个答案:

答案 0 :(得分:0)

你可以这样做:

for

通过这种方式,您可以访问Globalize gem的翻译表。

答案 1 :(得分:0)

我为我工作的解决方案是:

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

这会加入region_translations.region_id = regions.id上的region_translations表,其中I18n.locale = region_translations.locale