我在旧的rails 3.2项目中使用Globalize 3.1和globalize-accessors,以便以3种语言存储一些翻译的字段。 我有两个模型,一个公司,有很多基本的详细信息[标题,地址,lat,lng,图像等],我在这里翻译'title'和一个描述字段[摘要和描述],我翻译“摘要”和“描述”。
我正在使用simple_forms在我的管理员中添加[:en,:de,:it]语言环境中的所有翻译字段。
所有内容都存储和更新没有任何问题,但公司中的'title_en'仍然是最初的,所以如果我愿意,我无法更改它。
公司模型中的
translates :title
globalize_accessors locales: [:en, :de, :it], attributes: [:title]
控制器 中的
permitted = [:title_en, :title_de, :title_it, :address, :lat, :lng,
{ description_attributes: [ :summary_en, :description_en, :summary_de, :description_de, :summary_it, :description_it ] }, ....
在我的查看
中 <strong>English Translation:</strong>
<%= f.input :title_en %>
<%= f.simple_fields_for :description do |p| %>
<%= p.input :summary_en %>
<%= p.input :description_en, :as => :text, :input_html => { :rows => 20 } %>
<% end %>
<hr>
<strong>Italian Translation:</strong>
<%= f.input :title_it %>
<%= f.simple_fields_for :description do |p| %>
<%= p.input :summary_it %>
<%= p.input :description_it, :as => :text %>
<% end %>
<hr>
我仔细检查每一个可能的拼写错误或错误,但问题仍然存在,无论我是将空翻译添加到公司,还是我已经填写了所有已翻译的字段。 'title_en'始终保持不变。所有其他字段(title_it,title_de,summary_en,description_en,description_it等)可以毫无问题地更新。
你知道吗? 谢谢!******其他信息******* 这是我的更新操作
def update
expire_fragment(params[:id])
return update_rates if params[:company][:rates_attributes]
respond_with @company = Company.update(params[:id], company_params), location: admin_companies_url
end
def company_params
permitted = [:title_en, :title_de, :title_it, :address, :lat, :lng, .....
{ description_attributes: [ :summary_en, :description_en, :summary_de, :description_de, :summary_it, :description_it ] },
{ rates_attributes: [:id, :status, :date, :price] }, :images_attributes,:amenity_ids]
params.require(:company).permit(*permitted)
end
答案 0 :(得分:1)
<strong>English Translation:</strong>
<%= f.input :title_it %>
第2行= :title_it