I18n with_translation 和 where 条件

I18n with_translation and where condition

我正在尝试 运行 对具有翻译 Table TestimonialTranslations 的 table Testimonials 进行查询。

以下查询非常有效:

Testimonial.with_translations(I18n.locale).where(:id => params[:id]).first

当我将查询更改为:

Testimonial.with_translations(I18n.locale).where(:alias => "test").first

它没有 return 任何值?

存在一条记录,其中 class 为真:

=> [#<Testimonial id: 1, title: "Test", person: "", image_uid: nil, content: "<p>zfzefzfLorem ipsum dolor sit amet, consectetur a...", interest_group: "", created_at: "2015-01-15 11:48:11", updated_at: "2015-01-15 11:48:11", job: "", overview: true, content_short: "<p>Lorem ipsum dolor sit amet, consectetur adipisci...", hidden: false, hide_image: false, alias: "test">]

我 100% 确定语言是 "nl" 并且当我 运行:

时它 return 是一个查询
Testimonial.with_translations(I18n.locale)

这些是我的规格:

编辑 1:

我打算暂时搁置这个问题,但据我所知,无法在 with_translations 查询中添加 where 查询 [=52] =].

有了这些知识,我将需要进行 2 次查询。

您可以尝试添加 to_sql 以检查 sql 查询正在生成什么

Testimonial.with_translations(I18n.locale).where(:alias => "test").to_sql

你试过 with_translated_attribute 了吗?