繁体   English   中英

Rails HABTM复选框验证

[英]Rails HABTM checkbox validation

我有2个带有连接表的模型(bowsers_profiles)。 (HABTM),即

model Profile
  has_and_belongs_to_many :browsers
end

model Browser
  has_and_belongs_to_many :profiles
end

保存配置文件后,用户可以选择他们使用的浏览器。 我如何验证它,以便用户必须至少选择一个浏览器。 验证是否属于个人资料。 我猜会吗?

任何人都可以阐明如何实现这一目标。

谢谢,如果可以的话。

我将其放入与包含选择关系的动作的控制器相对应的模型中。 例如,如果您在profile#new和/或profile#edit操作中选择浏览器,则将验证放入概要模型中。

如果将其放入您的个人资料模型,则为以下代码:

  validate :must_have_at_least_one_browser

private

  def must_have_at_least_one_browser
    if browsers.blank?
      errors.add(:base, 'You must select at least one browser')
    end
  end

我要做的就是计算HABTM字段的数组元素,即

  def must_have_at_least_one_browser
    errors.add(:base, 'You must select at least one browser') unless browser_ids.count > 0
  end

最终的简单解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM