ruby-on-rails - 可以跳过对 update_attributes 的验证吗?

标签 ruby-on-rails ruby-on-rails-3 activerecord

这似乎是一个愚蠢的问题,但我无法在任何地方找到答案!

有没有可能update_attributes()并跳过验证,如 save(validate: false) ?

我有一个很长的表格,有些冗长text (不是 string )字段,我想为用户提供在表单上保存进度的能力。通常,在他们能够提交并继续之前,我希望答案的长度最小值等,但如果他们只是点击“保存”,我想把他们取得的任何进展放进去数据库,以便他们可以稍后返回并完成。在这种情况下有没有办法跳过验证?

环顾四周,似乎我唯一能做的就是像这样单独枚举每个字段:

@obj.field1 = ...
@obj.field2 = ...
@obj.field3 = ...
...
@obj.save(:validate => false)

真的是这样吗?我会担心将来某个时候添加另一个字段而忘记在此处更新 Controller 。

最佳答案

@obj.attributes = params[:obj]
@obj.save(false)

Rails 3 更新
@obj.attributes = params[:obj]
@obj.save(:validate => false)

关于ruby-on-rails - 可以跳过对 update_attributes 的验证吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10079258/

相关文章:

ruby-on-rails - 我可以在做种时将我的所有产品更新给特定用户吗?

ruby-on-rails - rails : display @cars as a comma-separated list

ruby-on-rails - 可以为特定关联集合创建自定义 to_s 方法吗?

ruby-on-rails - 为什么这总是返回 true? rails

ruby-on-rails - 在 Rails Controller 中存储对象的最佳方式( session 除外)?

ruby-on-rails - gem install sqlite3 给出错误 - sqlite3.h 丢失

css - 在 Rails 3 中导入 LESS 变量

Ruby 范围/ActiveRecord 查询无操作

ruby-on-rails - 查找最后的 created_at 记录

ruby-on-rails - 系统堆栈错误 : level too deep after running db:seed