首页 > 解决方案 > Rails 表单提交操作类似于 link_to

问题描述

所以最终我想要做的是让表单分成两个不同的列,状态在一个列中,保存按钮在link_to旁边的另一列中,或者让表单的提交像link_to一样操作。表单会自动应用一些导致拆分表单问题的 CSS。

  <tbody>
    <% @training_resource.spud_users.each do |training| %>
      <tr>
        <td><%= training.full_name %></td>
        <% utr = training.user_training_resources.where(training_resource: @training_resource).first %>
        <td class="utr-form">
         <%= tb_form_for [:admin, utr], url: admin_update_utr_path(utr), :remote => true, :html => {:id=>'form_id'}, :data => {:errors => :inline, :success => admin_training_resources_path} do |f| %>
           <%= f.select :status, UserTrainingResource.statuses.map {|k,v| [k.humanize, k]}, selected: utr.status %>

       </td>
        <td class="table-actions">
           <%= f.tb_save_buttons('', admin_update_utr_path(utr)) %>
         <% end %>
           <%= link_to 'submit', admin_update_utr_path(utr), :onclick => "$('#form_id').submit()" %>
           <%= link_to 'Delete', admin_destroy_utr_path(utr), :method => :delete, :data => {:confirm => 'Are you sure you want to delete this?'}, :class => 'btn btn-danger btn-sm'  %>
        </td>
      </tr>
    <% end %>
  </tbody>

所以我想弄清楚是否有办法将表单保存按钮更改为link_to。现在我在link_to“提交”下有它。但是,它不像 tb_save_button 那样操作,因为它不会重定向到正确的位置或保存。

标签: ruby-on-rails

解决方案


你可以在控制器中处理这个。

(example)
def create
  if utr.save
    redirect_to admin_update_utr_path(utr)
  else
    # render new form or display the previous view
  end
end

推荐阅读