Ruby on rails 验证rails 4中属性访问器的标记

Ruby on rails 验证rails 4中属性访问器的标记,ruby-on-rails,ruby,postgresql,ruby-on-rails-4,Ruby On Rails,Ruby,Postgresql,Ruby On Rails 4,我的应用程序中有一个项目模型,我有: attr_accessor :tags 标记是来自提交表单的字段,该字段进入控制器进行进一步设置。我想确保在提交表单时,此数组/标记的大小不超过5。我该怎么做?我使用的是rails 4 这是表单的外观: <%=f.autocomplete_field :tags, autocomplete_tags_project_path,'data-delimiter' => ',', :multiple => true%> 感谢您的帮助 更

我的应用程序中有一个项目模型,我有:

attr_accessor :tags
标记是来自提交表单的字段,该字段进入控制器进行进一步设置。我想确保在提交表单时,此数组/标记的大小不超过5。我该怎么做?我使用的是rails 4

这是表单的外观:

<%=f.autocomplete_field :tags, autocomplete_tags_project_path,'data-delimiter' => ',', :multiple => true%>
感谢您的帮助

更新:到达控制器的表单如下所示

标签=>[test, 春节, tst, 测验 测验 测验 春节, 特街, tes],

请试一试

validate :tag_size

def tag_size
  errors.add(:tags, 'YOUR ERROR MESSAGE') if tags.size > 5
end

您为什么不能使用该验证?Pavan,我可以添加5个以上的标签,验证不需要任何时间effect@psharma-你没有覆盖tags=、tags或assign_attributes方法,是吗?@BroiSatse-um,我不这么认为。我不知道。@psharma-尝试添加自定义验证验证:test\u me,定义test\u me方法以引发标记。请检查并粘贴错误。如果您展示如何处理标记数据,它可能会很方便。。。进入控制器进行进一步设置,我尝试了它,得到了nil:NilClass的未定义方法“size”
validate :tag_size

def tag_size
  errors.add(:tags, 'YOUR ERROR MESSAGE') if tags.size > 5
end