【发布时间】:2014-07-17 02:33:29
【问题描述】:
我安装了 Paperclip gem,但文件没有正确上传。我正在尝试将文件上传到我的合同模型中。由于对图像文件的存在进行了验证,因此我可以判断该文件没有上传,因为我收到“图像不能为空白错误”。此外,如果我取消该验证,该文件不会显示在我的 show.html.erb 视图中。
这是我的合同模型:
class Contract < ActiveRecord::Base
has_attached_file :image
validates_presence_of :image
has_many :task_orders, :dependent => :destroy
validates_uniqueness_of :id
validates_presence_of :id
self.primary_key = :id
validates :awardAmount, :numericality => true
end
这是我的合同表格:
<%= form_for(@contract, :html => {:multipart => true}) do |f| %>
<% if @contract.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@contract.errors.count, "error") %> prohibited this contract from being saved:</h2>
<ul>
<% @contract.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label "Contract Number" %><br>
<%= f.text_field :id %>
</div>
<div class="field">
<%= f.label 'Contract Name'%><br>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label "Award Date" %><br>
<%= f.date_select :awardDate %>
</div>
<div class="field">
<%= f.label "Expiration Date"%><br>
<%= f.date_select :expirationDate %>
</div>
<div class="field">
<%= f.label "Award Amount"%><br>
<%= f.text_field :awardAmount %>
</div>
<div class="field">
<%= f.label "Image"%><br>
<%= f.file_field :image %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
最后是我的合同/show.html.erb
<p id="notice"><%= notice %></p>
<p>
<strong>Contract ID:</strong>
<%= @contract.id %>
</p>
<p>
<strong>Contract Name:</strong>
<%= @contract.name %>
</p>
<p>
<strong>Award Date:</strong>
<%= @contract.awardDate %>
</p>
<p>
<strong>Expiration Date:</strong>
<%= @contract.expirationDate %>
</p>
<p>
<strong>Award Amount:</strong>
<%= number_to_currency(@contract.awardAmount) %>
</p>
<p>
<strong>Obligated Amount:</strong>
<%= number_to_currency(@contract.obligatedAmount) %>
</p>
<p>
<strong>Invoiced to Date:</strong>
<%= number_to_currency(@contract.invoicedAmount) %>
</p>
<% if @contract.image? %>
<p>
<strong>Attachment:</strong>
<%= link_to @contract.image.url, @contract.image.url %>
</p>
<% end %>
谢谢!!
【问题讨论】:
-
尝试改变表单 {:multipart => true } do |f| %>
-
那没用...它给了我一个可怕的错误,而不是@ramamoorthy_villi
-
你能发布你的
ContractController吗? -
has_attached_file :photo validates_presence_of :photo @JKen13579
-
不,我的意思是
contracts控制器,特别是contract_params方法。
标签: ruby-on-rails upload paperclip