Ruby on rails 如何验证翻译后的数据?

Ruby on rails 如何验证翻译后的数据?,ruby-on-rails,ruby,ruby-on-rails-3,globalization,globalize3,Ruby On Rails,Ruby,Ruby On Rails 3,Globalization,Globalize3,我正在使用RubyonRails(3.2.2)、(0.2.0)和(0.1.2)RubyGems。我想验证globalize3处理的翻译数据是否正确。例如,如果 。。。在我的ROOT\u RAILS/app/models/article.rb文件中,我有: class Article < ActiveRecord::Base translates :title, :content # This is needed to make the batch_translations to

我正在使用RubyonRails(3.2.2)、(0.2.0)和(0.1.2)RubyGems。我想验证globalize3处理的翻译数据是否正确。例如,如果

。。。在我的
ROOT\u RAILS/app/models/article.rb文件中,我有:

class Article < ActiveRecord::Base
  translates :title, :content

  # This is needed to make the batch_translations to work.
  attr_accessible :translations_attributes
  accepts_nested_attributes_for :translations

  validates :title,
    :presence => true,
    :length   => ...
  validates :content,
    :presence => true,
    :length   => ...

  ...
end
<%= form_for(@article) do |f| %>
    English translation:
    <%= f.text_field :title %>
    <%= f.text_field :content %>

    Italiano translation:
    <%= f.globalize_fields_for :it do |g| %>
      <%= g.text_field :title %>
      <%= f.text_field :content %>
    <% end %>
<% end %>
我想在提交表单时验证
标题
内容
值的数据,当前的
I18n。区域设置
不是
I18n。默认的\u区域设置
。换句话说,为了在数据库中存储正确的翻译信息,我想在用户提交非默认英语语言的区域设置语言的翻译数据时验证
title
content
属性

可能吗?如果是,怎么做?


注意:我举了一个例子。

如果我理解正确,有几种方法可以解决这个问题

1) 控制器级测试,用于测试随区域设置一起提交的表单是否保留到正确的本地化内容表。一种方法是这样:

    it "persists localized content for the Italian locale" do
       Article.should_receive(:create).with(:locale => 'it', :title => 'title goes here', :content => 'this is content')
       post :create, :locale => 'it', :title => 'title goes here', :content => 'this is content'
    end
这基本上是说,文章模型应该接收带有这些参数的create消息。我不完全清楚batch_translations API是如何工作的,因此您需要验证参数是如何从该样式表中输入的


在这一点上,我认为您应该充分测试数据是否正确地持久化到数据库。任何进一步的事情都将是测试GlobalizeGem是否有效,这是您想要避免的。尝试并测试边界。

您使用什么框架进行测试?测试:单元?Rspec?@Dan-我正在使用Rspec框架。