Ruby on rails validate在上充当标记

Ruby on rails validate在上充当标记,ruby-on-rails,validation,acts-as-taggable-on,Ruby On Rails,Validation,Acts As Taggable On,我正在使用添加标签。我的模型中有: acts_as_taggable validates_inclusion_of :tag_list, in: %w( bug feature ) 但是,在rails控制台中,如果我尝试: i = Issue.find(1) i.tag_list = "bug" i.save 验证失败,问题标签列表未保存。如果我删除了验证行,那么我当然可以添加标签列表。 我也尝试编写自定义验证: validate :tag_list_inclusion def ta

我正在使用添加标签。我的模型中有:

acts_as_taggable 
validates_inclusion_of :tag_list, in: %w( bug feature )
但是,在rails控制台中,如果我尝试:

i = Issue.find(1)
i.tag_list = "bug"
i.save
验证失败,问题标签列表未保存。如果我删除了验证行,那么我当然可以添加标签列表。 我也尝试编写自定义验证:

validate :tag_list_inclusion

  def tag_list_inclusion
    tag_list.each do |tag|
      return false unless %w(bug feature).include?(tag)
    end
    return true
  end
我的自定义验证确实有效,因为它总是返回true,并且总是通过验证(即使它不应该通过)。 只有在以下情况下,验证才能正常工作:

validates_presence_of :tag_list
我在这里找到了答案:

我的自定义验证器是:

  def tag_list_inclusion
    tag_list.each do |tag|
      errors.add(tag,"is not valid") unless %w(bug feature).include?(tag)
    end
  end