2010-03-28 17 views
0

HalloRuby on Rails problème de téléchargement de photo

rails Version 2.3.5

Je rails d'apprentissage et je courir dans un problème.

Je fais des formes d'imbrication à partir des tutoriels de rails. J'ai changé la zone de texte dans un champ de données pour télécharger des photos et tout fonctionne.

Maintenant, je dois afficher les images téléchargées et je ne peux tout simplement pas le faire. J'ai essayé tout ce que je pouvais trouver sur le net mais rien n'a fonctionné.

PROBLÈME

J'ai le contrôleur de l'article qui traite l'article CRUD. à l'intérieur de l'article nouveau formulaire il est imbriqué un formulaire pour télécharger des images.

contrôleur de l'article

def code_image 
     @image_data = Photo.find(params[:id]) 
     @image = @image_data.binary_data 
     send_data(@image, :type => @image_data.content_type, 
         :filename => @image_data.filename, 
         :disposition => 'inline') 
    end 

modèle photo

def image_file=(input_data) 
self.filename = input_data.original_filename 
self.content_type = input_data.content_type.chomp 
self.binary_data = input_data.read 
end 

articles/show.html.erb

<%=h @article.title %> 
<%=h @article.body %> 
<% for photos in @article.photos %> 
<%= image_tag(url_for({:action => 'code_image', 
:id => @article.photos.id})) -%> 
<% end %> 

articles/_formnew.html.erb

<% form_for (:article, @article, 
:url => {:action=>'create'}, :html=>   
{:multipart=>true}) do |f| %> 
<%= f.label :title %><br /> 
<%= f.text_field :title %><br /><br /> 

<%= f.label :body %><br /> 
<%= f.text_area :body, :style => 'width: 600px;' %><br /><br /> 

<% f.fields_for :photos do |builder|%> 

<%= builder.label :content, "Photo"%><br /> 
<%= builder.file_field :image_file %><br /> 

<% end %> 
<br /> 
<%= f.submit "Create" %> 

Merci

+0

Etes-vous capable d'afficher l'image directement en accédant à l'URL redirigée vers votre action code_image? Est-ce que votre enregistrement Photo semble être complet/correct lorsqu'il est affiché à l'aide de la console Rails? Qu'en est-il lorsque vous regardez dans la table des photos dans votre base de données? Répondre à ces questions devrait vous aider à isoler où se situe le problème. –

Répondre