Rails 表单,使用迭代变量动态更改字段名称?

Rails forms, change field name dynamically with iteration variable?

我有一个适用于所有语言环境的迭代。

我希望每次迭代中的 :text:title 字段根据区域设置进行更改,例如,:title_en 表示英语,:title_ru 表示俄语,:title_gr 表示希腊语等等。

enrugr 等是我迭代中的 locale,所以我从那里得到它们。

<% I18n.available_locales.map.with_index(1) do |locale, index| %>
   <%= f.text_field :title_(I want to use the locale here) %>
<% end %>

我该怎么做?最好的方法是什么?

如果您的 form 生成器支持所有语言环境,您可以试试这个:

<% I18n.available_locales.each.with_index(1) do |locale, index| %>
   <%= f.text_field "title_#{locale}".to_sym %>
<%end%>

并显示每个 Posttitle_(locale)(或任何 class 你得到的) :

<% Post.all.order(created_at: :desc).each do |post| %>
  <% I18n.available_locales.map.with_index(1) do |locale, index| %>
    <%= post.send("title_#{locale}") %> 
  <% end %>
<% end %>