仅使用Mobility将结果的结果范围限制为当前区域设置

时间:2018-02-12 23:02:06

标签: ruby-on-rails mobility

如何将查询的结果集限制为具有当前区域设置(或回退)转换的记录,同时忽略任何不存在的记录?

例如,如果区域设置为:fr,我只希望Article.all返回具有法语翻译的文章。与:'fr-FR'相同 - 我想返回任何翻译区域设置为:'fr-FR':fr的记录,但没有其他记录。

Article.joins(:translations).where(article_translations: { locale: [I81n.locale] })适用于单个位置,但是回退呢?

1 个答案:

答案 0 :(得分:1)

目前没有与后端无关的方法(目前)。 This issue将是实现它的一步。

但是,使用表格后端,当您拨打User.update({ _id: user_id, }, { $push: { leads: lead_to_add, }, }); 时,您正在使用内部联接,因此只会加入当前区域设置中包含翻译模型的记录,以及任何文章如果没有,将不会返回当前语言环境中的任何翻译。因此,join_translations只会清除所有在当前区域设置中没有翻译的文章,而不会做任何其他事情。

但是,目前还没有包括回退。为此,您必须自己弄清楚SQL,或者等到该功能实施(至少可能不会持续几个月)。