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)
谢谢你的帮助.
如果你看看文档.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)