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