Ruby on Rails多个按钮

Dan*_*urn 1 ruby ruby-on-rails paperclip

我写了以下内容:

<% if @document != nil %>
<%= form_for(@document, :html => { :multipart => true }) do |f| %>
  <% if @document.errors.any? %>
<div id="error_explanation">
  <h2><%= pluralize(@document.errors.count, "error") %> prohibited this document from being saved:</h2>

  <ul>
  <% @document.errors.full_messages.each do |message| %>
    <li><%= message %></li>
  <% end %>
  </ul>
</div>
<% end %>
<% if notice %>
  <p id="notice"><%= notice %></p>
<% end %>
<%= render partial: 'documents/resume' %>
<div id="add_buttons">
  <%= f.file_field :resume %>
  <%= f.submit %>
</div>
<% end %>
<% else %>
<h1>No Document Available</h1>
<% end %>
Run Code Online (Sandbox Code Playgroud)

抱歉,缩进,复制/粘贴没有粘贴它.无论如何,这是使用paperclip并且工作正常,只要在我列出的简历部分我已删除按钮已注释掉.以下是该部分的代码:

<div class='Resume_1'>
  <%#= @current_user = session[:user] %>
  <%#= @document = @current_user[:document] %>
  Current Resume: 
  <%= render partial: 'documents/resumelink' %>
</div>
<div class='Resume_2'>
  <% if (@document != nil) && (@document.resume_file_name != nil) %>
    <%= button_to "Delete Resume", @document, method: :delete, data: { confirm: 'Are you sure you wish to delete your resume?' } %>
  <% end %>
</div>
Run Code Online (Sandbox Code Playgroud)

如果button_to行被注释掉,则更新文档(f.submit)按钮正常工作.但是,如果保留button_to行,则f.submit按钮不执行任何操作.这里是destroy函数(删除方法被路由到的地方),因为这实际上似乎也没有删除简历.

  def destroy
    @document.resume = nil
    respond_to do |format|
      format.html { redirect_to welcome_url, notice: 'Resume was successfully deleted.' }
      format.json { head :no_content }
    end
  end
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

Man*_*eep 5

如果你看看文档.button_to帮助器生成的html是

<%= button_to "New", action: "new" %>
# => "<form method="post" action="/controller/new" class="button_to">
#      <div><input value="New" type="submit" /></div>
#    </form>"
Run Code Online (Sandbox Code Playgroud)

因此,当您在表单中有一个button_to时,您基本上在表单中有一个表单,因此您的提交按钮不起作用.

固定:

而不是使用button_to 使用link_to帮助程序,并提供引导类或一些自定义类,使其看起来像一个按钮

<%= link_to "Delete Resume", @document, class: "btn btn-default" method: :delete, data: { confirm: 'Are you sure you wish to delete your resume?' } %>
Run Code Online (Sandbox Code Playgroud)