Rails和Globalize - 在范围内加入相关模型的转换表

phl*_*egx 2 ruby-on-rails relationship has-many-through ruby-on-rails-4 globalize

我想订购一些与另一个模型有关系的模型的记录(带有翻译的属性).这是一个例子:

  1. 我有一个模型项目
  2. 我有一个模型任务
  3. 我有关系Project has_many Tasks
  4. 模型Task的属性名称为 globalized(在task_translations表上)

现在,我想通过其任务名称来订购所有项目.我怎么写这个范围?如何在Rails中加入转换表,如gem globalize中的方法with_translation(https://github.com/globalize/globalize/blob/eccb924ac9641b52399f22525b0e3ec004739f4c/lib/globalize/active_record/class_methods.rb),但是来自相关对象Project

> Project.all.joins(:tasks) ... (how to include task translation table) ...
Run Code Online (Sandbox Code Playgroud)

gab*_*lal 7

我相信这task_translations是直接相关的tasks,你可以这样查询:

Project.joins(tasks: :translations)
Run Code Online (Sandbox Code Playgroud)

  • 这就是访问表`Project.joins(tasks::translations).where(“ task_translations.name =?”,“ todo”)}的方式。 (3认同)
  • @TalhaShoaib假设语言环境是“ task_translations”表中的一列,则应该使用附加的.where(“ task_translations.locale =?”,locale)`。 (2认同)