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)
这些是我的规格:
- ruby 1.9.3p550(2014-10-27 修订版 48165)[x86_64-darwin13.4.0]
- Rails 3.2.19
编辑 1:
我打算暂时搁置这个问题,但据我所知,无法在 with_translations 查询中添加 where 查询 [=52] =].
有了这些知识,我将需要进行 2 次查询。
您可以尝试添加 to_sql
以检查 sql 查询正在生成什么
Testimonial.with_translations(I18n.locale).where(:alias => "test").to_sql
你试过 with_translated_attribute
了吗?
我正在尝试 运行 对具有翻译 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)
这些是我的规格:
- ruby 1.9.3p550(2014-10-27 修订版 48165)[x86_64-darwin13.4.0]
- Rails 3.2.19
编辑 1:
我打算暂时搁置这个问题,但据我所知,无法在 with_translations 查询中添加 where 查询 [=52] =].
有了这些知识,我将需要进行 2 次查询。
您可以尝试添加 to_sql
以检查 sql 查询正在生成什么
Testimonial.with_translations(I18n.locale).where(:alias => "test").to_sql
你试过 with_translated_attribute
了吗?