无法使用回形针上传照片

DNB*_*ims 2 ruby upload file-upload ruby-on-rails

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

<% 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 %>
Run Code Online (Sandbox Code Playgroud)

这个展示产品:

<% 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 %>
Run Code Online (Sandbox Code Playgroud)

而他的是我的产品.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
Run Code Online (Sandbox Code Playgroud)

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

HTTP://本地主机:3000 /照片/原厂/ missing.png

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

No route matches "/photos/original/missing.png" with
Run Code Online (Sandbox Code Playgroud)

{:方法=>:得到}

Aug*_*aas 7

我不确定是什么semantic_form_for,但经常form_for,你必须明确说它是一个多部分形式.

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

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