2017-04-20 54 views
0

我們使用Rails 3.2.15和Globalize gem for I18N。我們最近整合了Paper Trail Gem來審覈模型變更。ActiveRecord對象不會保存已翻譯的值和紙質文件夾創建者:

我們觀察到無論哪個模型字段被標記爲已翻譯的都不會在數據庫中更新。

例如

class MyModel < ActiveRecord::Base 
    translates :name 
    has_paper_trail 
end 

當我更新MyModel對象的name屬性時,它不會被保存。

版本:

的Ruby 1.9.3

的Rails 3.2.15

Globalize3

paper_trail 2.7.2

+0

'globalize' gem不會將翻譯的文本存儲在模型的表格中,而是存儲在專用的翻譯表格中。這意味着更改翻譯並不會更新模型本身,因此'papertrail'沒有機會注意到有變化。您將不得不擴展翻譯模型以使用papertrail。 – spickermann

+0

翻譯沒有任何模型。寶石在內部處理它 – Sid

回答

0

我把它通過升級我Globalize寶石工作,安裝寶石globalize-versioning。它在一起很好地工作。

class MyModel < ActiveRecord::Base 
    translates :name, versioning: :paper_trail 
    has_paper_trail 
end 

但這也需要你獲得版本翻譯項目進行my_model.translations.versions而不是通常的my_model.versions