首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用gem移动性按地区过滤记录?

如何使用gem移动性按地区过滤记录?
EN

Stack Overflow用户
提问于 2018-09-26 14:31:52
回答 1查看 334关注 0票数 1

我有一张桌子mobility_string_translations,但我不知道如何到达它。

现在我有三张唱片。两张德文唱片和一张西班牙文唱片。我只想要那些德文的记录。

这是行不通的:

代码语言:javascript
复制
all_de_posts = Post.i18n.find_by(locale: :de)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-26 19:16:51

首先,你可能有一个专栏。(比如说标题。)

在您的模型post.rb中,您将得到如下内容:

代码语言:javascript
复制
        class Post < ApplicationRecord
          extend Mobility
          translates :title,  type: :string, locale_accessors: [:en, :de]
        end     

要获得:de记录(或:en),类型非常重要。

在mobility_string_translations,schema.rb会看到一张桌子

代码语言:javascript
复制
  create_table "mobility_string_translations", force: :cascade do |t|
    t.string "locale", null: false
    t.string "key", null: false
    t.string "value"
    t.integer "translatable_id", null: false
    t.string "translatable_type", null: false
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.index ["translatable_id", "translatable_type", "key"], name: "index_mobility_string_translations_on_translatable_attribute"
    t.index ["translatable_id", "translatable_type", "locale", "key"], name: "index_mobility_string_translations_on_keys", unique: true
    t.index ["translatable_type", "key", "value", "locale"], name: "index_mobility_string_translations_on_query_keys"
  end

现在,在您的控制台上,查找使用locale::de的记录

代码语言:javascript
复制
irb:> Post.all

irb:> Mobility::ActiveRecord::StringTranslation.where(locale: :de)

正如您在schema.rb上看到的-> "mobility_string_translations“,您可以使用您的列来查找您想要的内容。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52520200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档