无法在rails中转储文件错误

时间:2011-01-13 04:26:42

标签: ruby-on-rails

我正在使用Rails 3.0.3开发一个应用程序。

我在以下代码中收到“无法转储文件”错误。

   if @post.update_attributes params[:post]
      redirect_to post_path(@post) #<= ERROR HERE

谷歌搜索后,我添加了两行来修复它。

   if @post.update_attributes params[:post]
      params[:post][:photos_attributes] = nil
      params[:post][:attachments_attributes] = nil
      redirect_to post_path(@post)

现在错误消失了。但我不明白为什么错误发生以及它是如何修复的。我使用active_record作为会话存储,它导致错误,因为文件无法存储在DB中。但是为什么redirect_to尝试在会话中存储文件?

感谢。

萨姆

3 个答案:

答案 0 :(得分:2)

添加:ActiveRecord::SessionStore::Session.serializer = :json到config / application.rb为我解决了这个问题。

答案 1 :(得分:0)

我不确定photo_attributesattachment_attributes中的内容。我的猜测是它们包含某些文件信息并保存它们无法正常工作。

也许您可以发布Post模型供我们查看?

答案 2 :(得分:0)

我猜是attachment_attributes包含上传的文件。

上传的文件作为ActionDispatch :: Http :: UploadedFile对象存储在params中,并且此类型的对象不可序列化,因此出错。