我目前对 Globalize gem 有点问题。
我解释了当前的情况:我有一个名为 Question 的模型。创建它之后,没有存储任何数据,我在模型中添加了以下几行:
class Question < ActiveRecord::Base
translates :wording, :answer1, :answer2, :answer3, :answer4
end
然后,我创建了一个迁移来创建翻译表
class CreateTranslationsTable < ActiveRecord::Migration
def up
Question.create_translation_table! :wording => :string, :answer1 => :string, :answer2 => :string, :answer3 => :string, :answer4 => :string
def end
def down
Question.drop_translation_table!
def end
我的默认语言环境是:en。之后我添加了一些数据。
如果我去执行rails c
并输入命令,Question.first.wording
一切正常。虽然当我在'rails c'中执行I18n.locale = :es
然后我Question.first.wording
仍然显示我在开头放置的英文文本。
我尝试了一件似乎对我有帮助的事情,那就是我删除了所有已翻译的列(如迁移数据后在 Globalize 文档中指定的那样。在我的情况下,我一开始没有任何数据要迁移)。之后我做了一个回滚(它取回了我从问题模型中删除的列),然后执行Question.first.wording
让它I18n.locale = :es
工作。这意味着Question.first.wording
返回nil
。
之后,我实现了 Ruby on Rails 指南中指定的“ Locale from Url Params ”,这意味着第一个 URL 参数是 ':locale' 参数。现在是当前的问题:视图仍然以英语显示信息,但它应该以西班牙语显示,因为我输入的 URL 是http://localhost.com/es/questions/。
如何让它在视图中显示西班牙语信息?