2016-08-11 1 views
0

У меня есть итерация для всех моих локалей.Рельсы формируют, изменяют имя поля динамически с переменной итерации?

Я хочу :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 %> 

Как это сделать? Каков наилучший способ сделать это?

+1

Вы хотите изменить символ: tilte_LOCALE в зависимости от языковой переменной? –

+0

@BramVandenbogaerde да точно, кажется довольно простым, но я не смог его найти. –

ответ

3

Если ваш form поддержки строитель всех языков, вы можете попробовать это:

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

И показать title_ (локаль) каждого Сообщение (или любой класс, который вы получили):

<% 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 %> 
+0

Эй, извините, что беспокою вас, но могу ли я задать вам еще одну вещь. Я пытаюсь показать содержимое 'article.title_ (locale)' now и 'article." Title _ # {locale} ". To_sym', похоже, не работает. Есть идеи? –

+0

Извините, что беспокою вас, я действительно нашел его, позвольте мне отредактировать ответ для будущих зрителей. –

+0

@dyserone показать мне полный код, который вы пытаетесь использовать, точно 'article.title_ (loca le)'. –

Смежные вопросы