2017-12-20 8 views
-3

私は好き、すべての翻訳でフォームを作成する方法翻訳 RailsでMobility Gemを使用してすべての翻訳を1つのフォームに実装する方法は?私のRailsアプリで

ため Mobility gemを使用しています:

  • 名[EN]:_______
  • 名[FR]:________
  • 名[デ]:_______
  • ...

最良の方法は何ですか?

+2

詳細を入力してください。 –

+1

あなたはモビリティについて質問していますが、少なくともそれについて言及する必要があります.Railsでそれを使用していると思います。 –

+0

ヒントをありがとう – alexponomarenko

答えて

2

これに関するドキュメントは実際にありませんが、モビリティでそのようなフォームを作成することは難しくありません。ここで

は、あなたが翻訳した属性 titleでオブジェクト @postを持っていると仮定すると、例です:あなたのコントローラで

<%= form_for @post do |f| %> 
    <% I18n.available_locales.each do |locale| %> 
    <div> 
     <% attr_name = "title_#{Mobility.normalize_locale(locale)}" %> 
     <%= f.label attr_name %> 
     <%= f.text_field attr_name %> 
    </div> 
    <% end %> 

    <%= f.submit %> 
<% end %> 

はあなたがpermitする必要がありますローカライズされた属性名だけでなく、何かのように:

def update 
    # ... 
    @post.update(permitted_params) 
    # ... 
end 

# ... 

private 

def permitted_params 
    params.require(:post).permit(I18n.available_locales.map { |l| 
    :"title_#{Mobility.normalize_locale(l)}" 
    }) 
end 
関連する問題