gpt4 book ai didi

ruby-on-rails-3 - 带有回形针附件的 Rails 3 中的多步表单

转载 作者:行者123 更新时间:2023-12-04 07:04:26 24 4
gpt4 key购买 nike

我正在以 Ryan Bates 在这里描述的风格创建一个多部分表单:

http://railscasts.com/episodes/217-multistep-forms
http://asciicasts.com/episodes/217-multistep-forms (文字版)

总而言之,我有一个 View (每个表单步骤都有一堆部分),当用户单击下一步按钮并显示表单的不同部分时,表单变量存储在 session 中。

我的表单步骤之一允许用户通过 Paperclip gem 上传多张图像。问题在于 Rails 正在尝试将图像数据上传到 session ,该 session 返回 TypeError“无法转储文件”。

什么是解决这个问题的好方法?

更新:
我尝试了一堆 gems(wizardly,acts_as_wizard 和其他一些较小的 gem),但它们似乎都不适用于 Rails 3。

我还尝试将数据存储在数组中,直到表单完成,但这导致我的 Controller 变得庞大而困惑。

最佳答案

除非您想保存 File,否则将模型保存到 session 中是有效的。进入 session 。向导插件使用 session 在步骤之间存储模型。在我的情况下,它们不会在有效模型上产生错误,仅在无效模型上产生错误。

所以清除附件听起来是个好主意,但在我的情况下,使用 Attachment#clear 清除回形针附件还不够,还想存一些File .

我发现问题出在 @queued_for_write Attachment 中的属性其中仍然包含数据。

所以以下两行解决了我的问题:

unless @model.valid?
@model.image.clear
@model.image.queued_for_write.clear
end

这是一个回形针错误,已在 this commit 中得到纠正.

关于ruby-on-rails-3 - 带有回形针附件的 Rails 3 中的多步表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5876714/

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