ruby-on-rails - Rails - 验证 :if one condition is true

标签 ruby-on-rails validation ruby-on-rails-4 ruby-on-rails-5

rails 5.

我有一个 Orderdescription 的模型属性。如果满足两个条件之一,我只想验证它的存在:如果当前步骤等于第一步或如果 require_validation 等于 true。

我可以根据这样的一个条件轻松验证:

validates :description, presence: true, if: :first_step?

def first_step?
 current_step == steps.first
end

但我不确定如何添加另一个条件并验证一个或另一个是否为真。

就像是:
validates :description, presence: true, if: :first_step? || :require_validation

谢谢!

最佳答案

您可以将 lambda 用于 if:子句并做一个或条件。

validates :description, presence: true, if: -> {current_step == steps.first || require_validation}

关于ruby-on-rails - Rails - 验证 :if one condition is true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42495133/

相关文章:

ruby-on-rails - 绘制 Highcharts 时 ruby​​ 代码中出现“TypeError”或 'expected numeric' 错误

asp.net-mvc - 如何使用 ASP.NET MVC 2 验证复杂模型

javascript - 获取动态生成的 <tr> ID

mysql - Rails Simple_Form 在数据库中将值保存为 NULL

ruby-on-rails - 使用 Rails 预编译 Assets 时出错 - ruby​​_executable_hooks:14:in `read':没有这样的文件或目录 - assets:precompile:all (Errno::ENOENT)

ruby-on-rails - Rails-教程第一章 : rails server isn't working on Cloud9

validation - 仅当验证未失败时,如何使用目标 =“_blank” 在新窗口中打开报告

java - 正则表达式 HHmm 验证 - Java

ruby-on-rails - rspec 测试 respond_to 格式和 csv

ruby-on-rails - Heroku Rails 4 HTTP DELETE 方法 API 结果 "403 Access denied"