Je suis tombé - a traversé docs, tutoriels, etc, et je ne suis pas sûr de ce que je fais mal.Trombone ne pas enregistrer, pas d'erreurs
Un autre modèle dans le projet est mis en place pour Paperclip et est fonctionnel lorsqu'il est testé. Il enregistre et récupère les informations du fichier joint dans la base de données et place le fichier dans un sous-dossier dans public/system. Je essentiellement copié le code correspondant sur vers le modèle que je travaille sur
Le modèle a la ligne suivante:
has_attached_file :document
Le tableau, le modèle est lié à, comporte des colonnes nécessaires:
document_file_name
document_content_type
document_file_size
document_updated_at
La vue de modifier a cette (en haml):
%h1 Knowledge Base: Edit Article
= message_block :on => @article
- form_for(@article, :url => knowledge_base_article_path(@article), :html => {:multipart => true}) do |f|
#knowledgebase.clearfix
%label Upload KB Document:
%br
= f.file_field :document
- if @article.document.exists?
%p
= link_to "Current KB Attachment", @article.document.url
%p
= f.check_box :remove_document
<br>
= render :partial => "form", :locals => {:f => f}
= submit_tag "Save changes"
= link_to "Cancel", knowledge_base_article_path(@article)
Lorsque j'enregistre les tenants du modèle tance, je peux voir dans le journal que Rails est au courant du dossier, je suis en train de télécharger:
Processing KnowledgeBase::ArticlesController#update (for 127.0.0.1 at 2010-11-18 19:21:01) [PUT]
Parameters: {"article"=>{"document"=>#<File:/var/folders/EZ/EZKwznNSGq4PAI4ll9NUD++++TI/-Tmp-/RackMultipart20101118-58632-19nvbc8-0>, "question"=>"Craig's Sandbox", "active"=>"0", "answer"=>"Nothing here, this is to test attachment functionality"}, "commit"=>"Save changes", "action"=>"update", "_method"=>"put", "authenticity_token"=>"MfH6RgLAQLnRBuf9WxgqWA+mIrDoBtYF+d4MW5DNCC0=", "id"=>"886", "controller"=>"knowledge_base/articles"}
Cependant, les valeurs db ne sont pas mis à jour à tous les quatre document_
* colonnes, ils restent NULL. Les autres colonnes de la même table sont mises à jour correctement.
Juste pour être sûr que les colonnes db sont correctement nommés, j'ai changé les colonnes de db à quelque chose d'autre et eu erreur sur frapper la vue, donc je sais que les colonnes db sont correctement nommés. Pour tester la récupération des pièces jointes, j'ai créé manuellement des sous-dossiers dans public/system (où la pièce jointe se serait trouvée lorsque l'instance du modèle a été enregistrée), et j'ai également modifié manuellement les quatre colonnes document_
* du tableau. Je suis ensuite allé à la même vue ci-dessus, et il a montré l'attachement correct en question.
je remarquai que je suis incapable de supprimer la pièce jointe lorsque « remove_document » est cochée. Les valeurs db pour document_
* restent inchangées. C'est comme si l'opération de lecture sur ces 4 colonnes fonctionnait, mais pas l'opération d'écriture (bien que Rails puisse modifier d'autres colonnes dans la même table si je modifie quelque chose dans l'instance de modèle sur la page d'édition d'édition).
Toutes les idées que je pourrais faire mal ici? Je suis sûr que j'ai manqué quelque chose d'évident.
MERCI. Le coupable était en effet dans le contrôleur, il est maintenant fixé. J'ai eu params [: some_namespace_before_article] au lieu de params [: article] et il est maintenant résolu! Marquage comme résolu. –