2017-12-06 14 views
0

私はform_withヘルパーを使用して新しいフォームを作成しています。あなたが新しいレコードページや編集ページ([CRUDの例:rails guide] [1]フォームを再利用するためにフォームを部分的にレンダリングします)フォームを呼び出す場所に応じて、送信ボタンのテキストを変更します。Rails form_with change submit submit text

<%= form_with model: @article, local: true do |form| %> 
    <p> 
     <%= form.label :title %> 
     <%= form.text_field :title %> 
    </p> 
    <p> 
     <%= form.submit %> 
    </p> 
<% end %> 

しかし、私は、フォーム上のテキストにしたいの目的を翻訳するためのヘルパーを提出したが、私は作成/更新認識機能を維持することが可能であるかどうかを知りませんし、いくつかのヘルパーまたはクラスがある場合、どこですることができますこれらのラベルを設定します。

答えて

1

いけない台無しフォームをヘルパークラスでは、それらの条件

form.rb

.. <% = form.submit frm_action%> ..

この

helper.rb

def frm_action 
    if @article.id.present? 
    "Create" 
    else 
    "Update" 
    end 
end 
よう

そして、あなたのヘルパーメソッド

1

私はこれを@articleオブジェクトで処理します。 @articleは、そうでない場合は、更新方法からそれでIDを持っていないフォームはメソッドを作成するからレンダリングされる

、あなたはそれを更新するためにIDに合格する必要があります。

だから、それは次のようになります。conditions.Putと

<% if @article.id.present? %> 
    <%= form.submit "Create" %> 
<% else %> 
    <%= form.submit "Update" %> 
<% end %>