Rails中块内的update_attributes

时间:2012-04-06 08:09:26

标签: ruby-on-rails

我正在尝试更新已通过globalize3翻译内容的模型。为此,我需要多次更改语言环境以更新模型。但是,update_attributes方法似乎不接受块作为参数。有没有其他方法可以实现以下目标?

Country.where(code: 'NLD').first_or_create.update_attributes do |country|
  I18n.locale = :en
  nld.name = 'Netherlands, The'

  I18n.locale = :nl
  nld.name = 'Nederland'
end

我正在进行first_or_create后跟update_attributes的原因是我希望能够多次运行我的种子文件并相应地更新数据。

1 个答案:

答案 0 :(得分:1)

G3有set_translations方法,所以你可以

Country.where(code: 'NLD').first_or_create.set_translations(
  :en => { :name => 'Netherlands, The' },
  :nl => { :name => 'Nederland' }
)