gpt4 book ai didi

ruby-on-rails - 回形针不保存,没有错误

转载 作者:数据小太阳 更新时间:2023-10-29 07:26:24 25 4
gpt4 key购买 nike

我迷迷糊糊了 - 浏览了文档、教程等,但不确定我做错了什么。

项目中的另一个模型是为 Paperclip 设置的,并且在测试时可以正常工作。它将附件文件信息保存并检索到数据库中,并将文件放入 public/system 中的子文件夹中。我基本上将相关代码复制到我正在处理的模型中

模型有如下一行:

has_attached_file :document

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

document_file_name 
document_content_type
document_file_size
document_updated_at

编辑 View 有这个(在 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 列更改为其他名称并在访问 View 时出错,所以我知道 db 列的命名正确。

为了测试附件检索,我在 public/system 中手动创建了子文件夹(保存模型实例时附件所在的位置),还手动修改了表中的四个 document_* 列。然后我转到上面的相同 View ,它确实显示了有问题的正确附件。

我注意到在选中“remove_document”时我也无法删除附件。 document_* 的数据库值保持不变。

就好像对这 4 列的读取操作有效,但写入操作不起作用(尽管如果我在编辑 View 页面上修改模型实例中的某些内容,我可以让 Rails 修改同一个表中的其他列) .

知道我在这里可能做错了什么吗?我确信我错过了一些明显的东西。

最佳答案

您如何更新 Controller 中的 Article 模型?你在使用 @article.update_attributes(params[:article]) 吗?

因为如果你是那么它可能是由错误使用 attr_protectedattr_accessible 引起的。在这种情况下,您可以尝试使用

分配文件
@article.document = params[:article][:document]

关于ruby-on-rails - 回形针不保存,没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4221076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com