无法使用回形针上传照片

时间:2010-01-10 13:34:58

标签: ruby-on-rails ruby upload file-upload

我在我的网络应用程序中使用了纸夹,我用它来制作新产品:

<% semantic_form_for @product do |f| %>  
  <% f.inputs do %>  
    <%= f.input :title %>  
    <%= f.input :price %>  
    <%= f.file_field :photo %>


    <%= f.input :category , :include_blank => false %>  
  <% end %>  
  <%= f.buttons %>  
<% end %>

这是为了展示产品:

<% semantic_form_for @product do |f| %>  
<%= image_tag @product.photo.url%>

  <% f.inputs do %>  
    <%= f.input :title %>  
    <%= f.input :price %>  
    <%= f.file_field :photo %>

    <%= f.input :category , :include_blank => false %>  
  <% end %>  
  <%= f.buttons %>  
<% end %>

他的是我的产品.rb:

class Product < ActiveRecord::Base
  validates_presence_of :title, :price
  validates_numericality_of :price
  validates_uniqueness_of :title

  has_attached_file :photo
  attr_accessible :name, :category_id, :price, :title, :photo
  belongs_to :category
  has_many :order_items

end

但是在我上传照片后,它会显示我的图像路径:

  

http://localhost:3000/photos/original/missing.png

似乎无法上传带有此错误的照片:

No route matches "/photos/original/missing.png" with
     

{:方法=&GT;:得到}

2 个答案:

答案 0 :(得分:7)

我不确定semantic_form_for是什么,但是对于常规form_for,您必须明确说明它是多部分形式。

<% form_for(@thing, :html => {:multipart => true}) do |f| %>
  ....

如果不这样做,文件上传字段的内容将不会传输到服务器。这是一个HTML 的东西;)

答案 1 :(得分:0)

我认为您将图像粘贴到rails应用程序的public / images文件夹中。并在浏览器中提供路径“/images/missing.png”。

您的索引将是