我有一个表单中的字段,并且仅当其格式等于我正在使用的两个正则表达式之一时,才需要对其进行注册。
我试图使用带有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
答案 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;
| ^