Ruby on rails Rails HABTM复选框验证

Ruby on rails Rails HABTM复选框验证,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有两个模型,带有连接表bowsers_剖面。哈比 model Profile has_and_belongs_to_many :browsers end model Browser has_and_belongs_to_many :profiles end 保存配置文件时,用户可以选择他们使用的浏览器。如何进行验证,以便用户必须至少选择一个浏览器。验证是否属于配置文件。我猜会吗 有谁能解释一下如何做到这一点 如果可以的话,谢谢。我将把它放在与控制器相对应的模型中,该控制器包含您选择

我有两个模型,带有连接表bowsers_剖面。哈比

model Profile
  has_and_belongs_to_many :browsers
end

model Browser
  has_and_belongs_to_many :profiles
end
保存配置文件时,用户可以选择他们使用的浏览器。如何进行验证,以便用户必须至少选择一个浏览器。验证是否属于配置文件。我猜会吗

有谁能解释一下如何做到这一点


如果可以的话,谢谢。

我将把它放在与控制器相对应的模型中,该控制器包含您选择关系的操作。例如,如果在profilenew和/或profileedit操作中选择浏览器,我会将验证放在profile模型中

以下是将其放入个人资料模型中的代码:

  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

最后是简单的解决办法。

你找到解决办法了吗?嗨,牧师。你的建议不起作用。