验证行为是否可标记
validate acts as taggable on
我正在使用 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
验证失败,问题 tag_list 未保存。如果我删除验证行,那么我当然可以添加 tag_list。
我也尝试编写自定义验证:
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
我的自定义验证确实有效,因为它总是 returns true 并且总是通过验证(即使它不应该)。
唯一有效的验证是:
validates_presence_of :tag_list
我在这里找到了答案:http://guides.rubyonrails.org/active_record_validations.html#custom-methods
我的自定义验证器是:
def tag_list_inclusion
tag_list.each do |tag|
errors.add(tag,"is not valid") unless %w(bug feature).include?(tag)
end
end
我正在使用 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
验证失败,问题 tag_list 未保存。如果我删除验证行,那么我当然可以添加 tag_list。 我也尝试编写自定义验证:
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
我的自定义验证确实有效,因为它总是 returns true 并且总是通过验证(即使它不应该)。 唯一有效的验证是:
validates_presence_of :tag_list
我在这里找到了答案:http://guides.rubyonrails.org/active_record_validations.html#custom-methods
我的自定义验证器是:
def tag_list_inclusion
tag_list.each do |tag|
errors.add(tag,"is not valid") unless %w(bug feature).include?(tag)
end
end