Как отфильтровать записи по локали, используя мобильность гемов? - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть таблица mobility_string_translations, но я не понимаю, как к ней добраться.

Теперь у меня три записи.Две записи на немецком и одна на испанском.Я хочу получить только те записи на немецком языке.

это не работает:

all_de_posts = Post.i18n.find_by(locale: :de)

1 Ответ

0 голосов
/ 26 сентября 2018

Прежде всего, у вас может быть столбец. (Скажем, название.)

На вашей модели post.rb у вас будет что-то вроде этого:

        class Post < ApplicationRecord
          extend Mobility
          translates :title,  type: :string, locale_accessors: [:en, :de]
        end     

Тип важенчтобы получить: de records (или: en).

В schema.rb вы увидите таблицу mobility_ string _translations

  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

irb:> Post.all

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

Как вы можете видеть на вашем schema.rb -> "mobility_string_translations", вы можете поэкспериментировать со своими столбцами по порядку.чтобы найти именно то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...