ruby-on-rails – Paperclip不保存,没有错误

ruby-on-rails – Paperclip不保存,没有错误,第1张

概述我跌跌撞撞 – 经历了文档,教程等,我不确定我做错了什么. 该项目中的另一个模型是为Paperclip设置的,并在测试时起作用.它将附件文件信息保存并检索到数据库中,并将文件放入公共/系统内的子文件夹中.我基本上将相关代码复制到我正在处理的模型上 该模型具有以下行: has_attached_file :document 该模型链接到的表具有必要的列: document_file_name do 我跌跌撞撞 – 经历了文档,教程等,我不确定我做错了什么.

该项目中的另一个模型是为Paperclip设置的,并在测试时起作用.它将附件文件信息保存并检索到数据库中,并将文件放入公共/系统内的子文件夹中.我基本上将相关代码复制到我正在处理的模型上

该模型具有以下行:

has_attached_file :document

该模型链接到的表具有必要的列:

document_file_name document_content_typedocument_file_sizedocument_updated_at

编辑视图有这个(以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)

当我保存模型实例时,我可以在日志中看到Rails知道我要上传的文件:

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"}

但是,对于四个document_ *列,db值根本不会更新,它们仍为NulL.同一表中的其他列更新正常.

为了确保db列被正确命名,我将db列更改为其他内容并在访问视图时出错,因此我知道db列已正确命名.

为了测试附件检索,我手动创建了public / system中的子文件夹(保存模型实例时附件将在其中),并且还手动修改了表中的四个document_ *列.然后我转到上面的相同视图,它确实显示了正确的附件.

我注意到,当检查“remove_document”时,我也无法删除附件. document_ *的db值保持不变.

就好像这4列的读 *** 作一样,但写 *** 作没有(虽然我可以让Rails修改同一个表中的其他列,如果我修改了编辑视图页面上的模型实例中的内容).

我在这里做错了什么想法?我相信我错过了一些明显的东西.

解决方法 你是如何在控制器中更新文章模型的?你在用@ article.update_attributes(params [:article])吗?

因为如果你是因为它可能是由于错误使用attr_protected或attr_accessible造成的.在这种情况下,您可以尝试分配文件

@article.document = params[:article][:document]
总结

以上是内存溢出为你收集整理的ruby-on-rails – Paperclip不保存,没有错误全部内容,希望文章能够帮你解决ruby-on-rails – Paperclip不保存,没有错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1285777.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存