globalize3配置I18n.locale变量

时间:2012-04-13 02:05:26

标签: ruby-on-rails globalize3

查看我的模型和我的迁移

我只有一个属性来测试globalize3 gem

class Car < ActiveRecord::Base
   attr_accessible :name
   translates :name
end

我的迁移如下所示

class CreateCars < ActiveRecord::Migration
  def up
    create_table :cars do |t|
      t.timestamps
    end
    Car.create_translation_table! :name => :string
  end

  def down
    Car.drop_translation_table!
    drop_table :cars
  end
end

我尝试使用属性名称

保存新车细节时出现以下错误

ActiveModel :: MassAssignmentSecurity ::错误:无法批量分配受保护的属性:区域设置

我想我缺少一些globalize3的声明/配置来访问I18n.locale变量。

顺便说一句,我使用的是rails 3.2.3和ruby 1.9.3p125

2 个答案:

答案 0 :(得分:13)

按照此Issue

找到了解决问题的方法
class Car < ActiveRecord::Base
  attr_accessible :name
  translates :name
  class Translation
    attr_accessible :locale
  end
end

答案 1 :(得分:1)

不应该这样:

class Car < ActiveRecord::Base
  attr_accessible :name, :translations_attributes
  translates :name
end

请参阅:

Rails 3.2.3: How to mass assign associated models?