ruby-on-rails - 验证失败时如何保留文件字段值

标签 ruby-on-rails ruby ruby-on-rails-3 forms webforms

我有一个带文件字段的经典 Rails 3 表单,一切正常,上传正常,数据保存到数据库。

当验证失败时,例如,缺少标题,用户将被送回带有render :action => new 的表单。普通的。但这里的问题是,用户必须再次选择其文件。

有什么办法可以避免吗?

最佳答案

通常,您不想在验证运行之前处理文件,或者您要重复存储可能没有关联记录的文件。 Paperclip 和 attachment_fu 这样的 Gem 可以做到这一点。

如果您希望在文件第一次提交且有效时存储该文件,您可以存储该文件,然后在您的 View 中快速检查它是否已经为您正在为其构建表单的对象设置,例如:

<% unless foo.attachment? %>
  # file field
<% end %>

有道理吗?

关于ruby-on-rails - 验证失败时如何保留文件字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5981119/

相关文章:

ruby-on-rails - 将 Rails 与 Paperclip 和 SWFUpload 结合使用

ruby - 如何确定两个字符串是否以 ruby​​ 中的相同子字符串开头

ruby - 是否有用于 websockets 的 ruby​​ 的稳定的、生产就绪的库?

ruby-on-rails - 禁用第一个 nil 选项 - rails

ruby-on-rails - Rails 3.1.1 - Asset Pipeline - asset.prefix 不能与资源 :assets 一起使用

ruby-on-rails - iframe 内容的 Rspec 测试

css - 在 rails 中的 bootstrap btn-group 中排列一个 form_for 按钮

ruby-on-rails - 我在名为 Cove 的 rails 中创建了一个脚手架。在 Controller 中,实例变量自动命名为@cofe。为什么会这样?

ruby-on-rails - Rspec 与 TestUnit

ruby-on-rails-3 - 注册自定义 spree 计算器不起作用