gpt4 book ai didi

ruby - Rails 4 和全局化不添加翻译

转载 作者:数据小太阳 更新时间:2023-10-29 07:37:56 26 4
gpt4 key购买 nike

我升级到 Rails 4 和全局化(而不是 globalize3),从那以后翻译就不能正常工作了。

步骤:

创建英文记录
将语言环境更改为 :es
然后在刚刚创建的对象上调用 update_attributes

这用于在 es 中创建一个新的翻译。
但是,现在,它修改的是英文记录!!!请帮忙?

gem 文件:

gem "rails", "4.0.1"
gem "globalize", "~> 4.0.0.alpha.1"

型号:

class GlossaryTerm < ActiveRecord::Base
translates :term, :definition
accepts_nested_attributes_for :translations

has_many :glossary_term_translations
belongs_to :section
validates_presence_of :term
validates_presence_of :definition

**after_create :create_spanish_placeholder**

def create_spanish_placeholder
term = self.term
definition = self.definition
I18n.locale = :es
self.update_attributes(:term => "SPANISH placeholder for #{term}", :definition => "SPANISH placeholder for #{definition}")
I18n.locale = :en
end

#...

end

Controller :

class Admin::GlossaryTermsController < ApplicationController
before_filter :authorize_sysadmin!

def create
find_models
@glossary_term = @section.glossary_terms.new(glossary_term_params)
if @glossary_term.save
redirect_to edit_admin_section_url(@section, program_id: @program.id)
else
render :action => "new"
end
end

#...

protected

def glossary_term_params
params.require(:glossary_term).permit(:term, :definition, :glossary_image, :glossary_image_file_name,
:translations_attributes => [:id, :term, :definition])
end

#...

end

最佳答案

试试这个方法:

def create_spanish_placeholder
term = self.term
definition = self.definition
Globalize.with_locale(:es) do
self.update_attributes(:term => "SPANISH placeholder for #{term}", :definition => "SPANISH placeholder for #{definition}")
end
end

关于ruby - Rails 4 和全局化不添加翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20503406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com