question sur paperclip

5 views
Skip to first unread message

Olivier Morel

unread,
Nov 3, 2011, 12:18:04 PM11/3/11
to rails...@googlegroups.com, rubyfr...@googlegroups.com
bonsoir à tous 

j ai mis en place le gem paperclip "gestion et téléchargement d'image et de fichier"
je parviens à bien télécharger mon image et à la voir, mais par contre quand j 'essaye de télécharger un fichier par exemple un pdf  j ai le droit à l'erreur suivante 

NoMethodError in ItemsController#create

undefined method `name' for nil:NilClass"pdf_path"=>#<ActionDispatch::Http::UploadedFile:0x00000004d2ac90 @original_filename="telereglement_THCAP_20111010_202437.pdf",
@content_type="application/pdf",
 @headers="Content-Disposition: form-data; name=\"item[pdf_path]\"; filename=\"ent_THCAP_201010_202437.pdf\"\r\nContent-Type: application/pdf\r\n",

J ai du mal à comprendre pourquoi j ai le droit à une erreur ??

voici mon controller#Icreate

def create
@item = Item.new(params[:item])
@item = Item.create(params[:item])

@search = Item.search(params[:search])
if @search
@items = @search
else
@items = Item.order("title")
end

voici mon  _form.html.erb 

<%= form_for(@item, :html => { :multipart => true}) do |f| %>
<% if @item.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@item.errors.count, "error") %> prohibited this item from being saved:</h2>

    <% end %>

<p>Image de l'article</p>
<div class="field">
<%= f.file_field :cover %>
</div>

<br />
  

<div class="field">
<%= f.label :pdf_path, 'Fichier PDF' %>
<%= f.file_field :pdf_path %>
</div>

<div class="field">
<%= f.label :description %><br />
<%= f.text_area :description %>
</div>

<div class="actions">
<%= f.submit %>
</div>
<% end %>

ps : merci à tous pour vos remarques j'espère qu'elle me permettrons d'avancer et peut être de mieux comprendre mon erreur si il y a . 

Rubyment 
Olivier 
32F.png
328.png

Alexandre Friquet

unread,
Nov 3, 2011, 12:57:17 PM11/3/11
to rubyfr...@googlegroups.com
Salut,

Le 3 novembre 2011 17:18, Olivier Morel <olivi...@gmail.com> a écrit :
> J ai du mal à comprendre pourquoi j ai le droit à une erreur ??
> voici mon controller#Icreate
> def create
> @item = Item.new(params[:item])
> @item = Item.create(params[:item])
> @search = Item.search(params[:search])
> if @search
> @items = @search
> else
> @items = Item.order("title")
> end

J'ai du mal à comprendre ta méthode create :
- pourquoi faire un Item.new puis un Item.create avec les mêmes paramètres
- vers quelle page rediriges-tu après que l'Item ait été créé ?

> voici mon  _form.html.erb
> <%= form_for(@item, :html => { :multipart => true}) do |f| %>

> <div class="field">
> <%= f.label :pdf_path, 'Fichier PDF' %>
> <%= f.file_field :pdf_path %>
> </div>

> <%= f.submit %>
> <% end %>

J'ai fait un peu de ménage dans le form pour ne conserver que ce qui
nous intéresse a priori.
On pourrait avoir la déclaration de Paperclip de pdf_path dans le modèle Item ?
Tu n'as pas d'indication sur la ligne où tu rencontres le problème ?
--
Alex

Reply all
Reply to author
Forward
0 new messages