2010-01-10 2 views
2

je trombone dans mon application web, je l'utiliser pour faire un nouveau produit:Impossible de télécharger la photo en utilisant du papier pince

<% 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 %> 

Et cela montre produit:

<% 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 %> 

Et son est mon product.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 

Mais après je télécharger la photo, il montrer mon chemin d'image comme ceci:

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

Il semble qu'il ne peut pas télécharger la photo avec cette erreur:

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

{:method=>:get}

Répondre

7

Je ne suis pas sûr de ce que semantic_form_for est, mais avec form_for régulière, vous devez dire explicitement c'est une forme multipart . Si vous ne faites pas cela, le contenu de vos champs de téléchargement de fichiers ne sera pas transmis au serveur. Il est une chose HTML ;)

+0

Je SEEE, je manque le: html => {: multipart => true}, poids est pour ?? html => {: multipart => true} – DNB5brims

+0

Mis à jour mon message;) –

0

Je pense que vous collez l'image dans le dossier public/images dans vos rails application.And donnez le chemin comme dans votre navigateur « /images/missing.png ».

Et votre index sera

Questions connexes