2017-11-22 9 views
1

私はユーザーと呼ばれるリソースを持っています。編集操作の中では、ユーザーの情報を編集するためのform_forがあります。フォーム内にボタンを配置して別のアクションにリダイレクトしたいだから私はこれをやっている:form_for内のアクションにボタンでlink_toを作成するにはどうすればいいですか?

<%= form_for @user, html: {class: 'form-horizontal'} do |f| %> 
<div class="row"> 
    <div class="col-sm-8 col-sm-offset-2"> 

    <div class="form-group"> 
     <%= f.label :name, "Name", class: "col-sm-4 control-label"%> 
     <div class="col-sm-8"> 
     <%= f.text_field :name, required: "required", class: "form-control" %> 
     </div> 
    </div> 

    <div class="form-group"> 
     <%= f.label :email, "Email", class: "col-sm-4 control-label"%> 
     <div class="col-sm-8"> 
     <%= f.email_field :email, required: "required", class: "form-control" %> 
     </div> 
    </div> 

    <div class="form-group"> 
     <%= link_to root_path do %> 
     <button class="btn btn-default" name="button">Go to Root</button> 
     <% end %> 
    </div> 

    <%= f.submit "Save", class: "btn btn-default" %> 

    </div> 
</div> 
<% end %> 

問題は、私は「ルートに行く」ボタンをクリックすると、それは私が送信ボタンを押した場合などの更新アクションでフォームを処理する、ということです。私は

<div class="form-group"> 
     <%= link_to root_path do %> 
     Go to Root 
     <% end %> 
    </div> 

ため

<div class="form-group"> 
     <%= link_to root_path do %> 
     <button class="btn btn-default" name="button">Go to Root</button> 
     <% end %> 
    </div> 

を変更した場合でも、それはのroot_pathをしteに進みます。なぜそれが起こっているのですか?このフォーム内の別のアクションへのリンクを作成するために、なぜ私は使用できませんか?

答えて

1

デフォルトでは、フォームボタンにはsubmitと入力されます。タイプボタンであることを指定する必要があります。

次のことを試してみてください。

<button type="button" class="btn btn-default" name="button">Go to Root</button> 
関連する問題