activeadmin-globalize не обновляет записи

Я использую rails4, activeadmin, globalize и activeadmin-globalize. Я создал тестовое приложение, но оно не работает должным образом для меня.

У меня есть модель класса model.rb

class Post < ActiveRecord::Base
  active_admin_translates :title, :text do
    validates_presence_of :title
  end
end

И соответствующая миграция

class CreatePosts < ActiveRecord::Migration
  def up
    create_table :posts do |t|
      t.timestamps
    end
    Post.create_translation_table! title: :string, text: :text
  end

  def down
    drop_table :posts
    Post.drop_translation_table!
  end
end

Активная страница администратора настроена так

ActiveAdmin.register Post do
  permit_params :title, :text, translations_attributes: [:title, :text, :locale]

  index do
    translation_status
    default_actions
  end

  form do |f|
    f.translated_inputs 'Translated fields', switch_locale: false do |t|
      t.input :title
      t.input :text
    end
    f.actions
  end
end

Когда я создаю новую запись в ActiveAdmin, все работает хорошо и локализации сохраняются. Проблема в том, что когда я пытаюсь отредактировать и сохранить эту запись, ничего не меняется.

Кто-нибудь может сказать мне, что я делаю не так? Есть ли рабочий пример решения, которое я могу скачать и попробовать самостоятельно?

Обновить:

Я только что обнаружил, что всякий раз, когда я пытаюсь обновить запись, в таблице переводов создается новый набор записей перевода. ActiveAdmin все еще видит первый.

1 ответ

Решение

Вы должны добавить:id к translations_attributes в allow_params:

permit_params :title, :text, translations_attributes: [:id, :title, :text, :locale]
Другие вопросы по тегам