Rails 表单,使用迭代变量动态更改字段名称?
Rails forms, change field name dynamically with iteration variable?
我有一个适用于所有语言环境的迭代。
我希望每次迭代中的 :text
和 :title
字段根据区域设置进行更改,例如,:title_en
表示英语,:title_ru
表示俄语,:title_gr
表示希腊语等等。
en
、ru
、gr
等是我迭代中的 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%>
并显示每个 Post 的 title_(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 %>
我有一个适用于所有语言环境的迭代。
我希望每次迭代中的 :text
和 :title
字段根据区域设置进行更改,例如,:title_en
表示英语,:title_ru
表示俄语,:title_gr
表示希腊语等等。
en
、ru
、gr
等是我迭代中的 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%>
并显示每个 Post 的 title_(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 %>