我在我的网络应用程序中使用了纸夹,我用它来制作新产品:
<% 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
但是在我上传照片后,它会显示我的图像路径:
似乎无法上传带有此错误的照片:
No route matches "/photos/original/missing.png" with
{:方法=&GT;:得到}
答案 0 :(得分:7)
我不确定semantic_form_for
是什么,但是对于常规form_for
,您必须明确说明它是多部分形式。
<% form_for(@thing, :html => {:multipart => true}) do |f| %>
....
如果不这样做,文件上传字段的内容将不会传输到服务器。这是一个HTML 的东西;)
答案 1 :(得分:0)
我认为您将图像粘贴到rails应用程序的public / images文件夹中。并在浏览器中提供路径“/images/missing.png”。
您的索引将是