activeadmin-globalize不会更新记录

Mar*_*cak 2 localization ruby-on-rails activeadmin globalize3

我正在使用rails4,activeadmin,globalize和activeadmin-globalize.我创建了一个测试应用程序,但它对我不起作用.

我有一个模型类model.rb

class Post < ActiveRecord::Base
  active_admin_translates :title, :text do
    validates_presence_of :title
  end
end
Run Code Online (Sandbox Code Playgroud)

适当的迁移

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
Run Code Online (Sandbox Code Playgroud)

活动管理页面配置如下

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
Run Code Online (Sandbox Code Playgroud)

当我在ActiveAdmin中创建新记录时,一切运行良好,并保存本地化.问题是当我尝试编辑并保存该记录时,没有任何改变.

谁能告诉我我做错了什么?有没有可以下载和试用自己的工作示例解决方案?

更新:

我刚刚发现,每当我尝试更新记录时,都会在翻译表中创建新的翻译记录元组.ActiveAdmin仍然看到第一个.

dte*_*eri 6

您必须在permit_params中为translations_attributes添加:id:

permit_params :title, :text, translations_attributes: [:id, :title, :text, :locale]
Run Code Online (Sandbox Code Playgroud)