正则表达式on validates_format_of

时间:2019-05-27 12:09:20

标签: ruby-on-rails regex

我有一个表单中的字段,并且仅当其格式等于我正在使用的两个正则表达式之一时,才需要对其进行注册。

我试图使用带有Proc.new的辅助结构validates_format_of的方法,但可能未使用正确的语法或正确的数据类型

private def format_field
  errors.add(
    :field, "The field does not have a valid format."
  )unless[
    /[0-9]{3}\.?[0-9]{3}\.?[0-9]{3}\-?[0-9]{2}/, 
    /[0-9]{2}\.?[0-9]{3}\.?[0-9]{3}\/?[0-9]{4}\-?[0-9]{2}/
  ].include?(field.format)
end

1 个答案:

答案 0 :(得分:0)

一种简单的方法如下:

<source>: In function 'int main()':
<source>:36:38: error: ambiguous template instantiation for 'struct traits<Map<const Foo> >'
   36 |   std::cout << traits<Map<const Foo>>::N << std::endl;
      |                                      ^~
<source>:24:8: note: candidates are: 'template<class C> struct traits<Map<first_type<C> > > [with C = const Foo]'
   24 | struct traits<Map<first_type<C>>> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:30:8: note:                 'template<class C> struct traits<Map<first_type<const C> > > [with C = Foo]'
   30 | struct traits<Map<first_type<const C>>> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:36:40: error: incomplete type 'traits<Map<const Foo> >' used in nested name specifier
   36 |   std::cout << traits<Map<const Foo>>::N << std::endl;
      |                                        ^