У меня есть приложение Rails 5, в котором я использую Globalize для локализации. У меня сейчас проблема, когда я не могу сохранить новые объекты, если у них нет переводов.
Моя модель выглядит так:
# Product.rb
translates :description, :fallbacks_for_empty_translations => true
has_many :translations
accepts_nested_attributes_for :translations
# ProductTranslation.rb
belongs_to :product, optional: true
Моя схема базы данных ищет мои product_translations, как это:
t.integer "product_id", null: false
t.string "locale", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "description"
t.index ["locale"], name: "index_product_translations_on_locale"
t.index ["product_id"], name: "index_product_translations_on_product_id"
Когда я пытаюсь сохранить новые продукты, я получаю эту ошибку:
Unable to save product with id = got these validation errors {:"translations.globalized_model"=>["translation missing: sv.activerecord.errors.models.product/translation.attributes.globalized_model.required"]}
Есть идеи, что я могу сделать, чтобы это работало?
Рискну предположить, что это не фактически, проблема «перевода»: я думаю, он пытается вернуть вам переведенное сообщение об ошибке, но не может найти перевод для этой ошибки. Где находится ваш файл sv.yml и как он выглядит?
Еще одно предположение: это должен быть has_many :product_translations
- судя по вашим примерам кода, translations
не является моделью.
Как вы сохраняете новые продукты? Может быть, потому, что вы не предоставляете перевод для нового экземпляра продукта?