Ruby on rails 创建新对象后如何让Globalize创建所有本地化?
我的Rails应用程序的一个名为Tools的模型使用Globalize进行翻译,当我创建一个新记录时,Globalize只将一个区域设置的记录保存到tool_translations表中,但我希望在创建时保存tool_translation中的所有记录,每个区域设置一个记录 现在,当我创建一个新工具时,工具翻译的结果如下:Ruby on rails 创建新对象后如何让Globalize创建所有本地化?,ruby-on-rails,globalize,Ruby On Rails,Globalize,我的Rails应用程序的一个名为Tools的模型使用Globalize进行翻译,当我创建一个新记录时,Globalize只将一个区域设置的记录保存到tool_translations表中,但我希望在创建时保存tool_translation中的所有记录,每个区域设置一个记录 现在,当我创建一个新工具时,工具翻译的结果如下: +--+--------+-------+------------+---------------------+ |id|tool_id | locale| name
+--+--------+-------+------------+---------------------+
|id|tool_id | locale| name | description |
+--+--------+-------+------------+---------------------+
|1 | 1 | en | Printer | print documents |
+--+--------+-------+------------+---------------------+
但我有其他地区,所以我希望在创建工具后在工具\u翻译表上得到以下结果:
+--+--------+-------+------------+---------------------+
|id|tool_id | locale| name | description |
+--+--------+-------+------------+---------------------+
|1 | 1 | en | Printer | print documents |
+--+--------+-------+------------+---------------------+
|2 | 1 | it | | |
+--+--------+-------+------------+---------------------+
我读过这篇文章:,这和我的问题很相似,但对我来说不起作用
这是我的工具模型:
class Tool < ApplicationRecord
extend FriendlyId
friendly_id :name, use: :slugged
translates :name, :description
before_save :name
def name=(s)
write_attribute(:name, s.to_s.capitalize)
end
如果在工具模型中我将使用default\u scope->{order(name::asc)}
def new
@tool = Tool.new
end
def create
@tool = Tool.new(tool_params)
if @tool.save
flash[:success]= t('.created')
redirect_to admin_tool_path(@tool)
else
render 'new'
end
end