ruby-on-rails - Rails 3 - 验证两个字段之一已完成

标签 ruby-on-rails ruby-on-rails-3 validation model

我正在编写一个 Rails 应用程序来管理我们网站顶部的一系列横幅;每个人都应该链接到编辑器提供的 URL,或从下拉列表中选择的特定产品。

我想在模型中进行某种验证,以与其他检查保持一致,以确保在保存时提供了一个(但不是两个)字段(产品 ID 或 URL)。

有没有validates -type 方法来检查这个,还是我必须把这个检查放在 Controller 的某个地方?

最佳答案

这是模型中非常直接的验证:

validate :check_consistency

def check_consistency
  if product_id.blank? and url.blank?
   #one at least must be filled in, add a custom error message
   return false
  elsif !product_id.blank? and !url.blank?
   #both can't be filled in, add custom error message
   return false
  else
   return true
  end
end

关于ruby-on-rails - Rails 3 - 验证两个字段之一已完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6694854/

相关文章:

ruby-on-rails - 证书错误 SSL_connect returned=1 errno=0 state=error : certificate verify failed

ruby-on-rails - 为什么Rails 5使用puma而不是webrick进行开发?

ruby-on-rails - 主动管理多个文件/图像上传与回形针

sql - 是否有针对主要 SQL 方言(TSQL、Oracle、MySQL)的开源验证解析器?或者至少是这些方言的精确规范?

ruby-on-rails - 在 Rails 中构建动态 ActiveRecord 查询

ruby-on-rails-3 - 没有方法 error_messages selenium 和 capybara-webkit

ruby-on-rails - 有没有办法让 ruby​​ on rails 应用程序像 Wordpress 一样支持基于 Web 的升级?

python - Django 空表单字段验证不适用于干净的方法

javascript - jquery.validate : multiple fields add up to value

ruby-on-rails-3 - 具有多个模式的 Multi-Tenancy Rails 应用程序