如何在模型文件中为变量指定文件类型?
How to specify file type for a variable, in the model file?
在我的一个模型文件中,我想为一个变量(称为 xml_file)指定它应该是一个 xml 文件。到目前为止我所尝试的生成了错误消息。
尝试 1
validates :xml_file, presence: true,
content_type: %w(application/xml)
在 rake test
这产生了错误 ArgumentError: Unknown validator: 'ContentTypeValidator'
。
尝试 2
VALID_XML_REGEX = %w(xml)
validates :xml_file, presence: true,
format: { with: VALID_XML_REGEX }
这在测试中产生了错误 ArgumentError: A regular expression or a proc or lambda must be supplied as :with
。
尝试 3:创建自己的方法
validates :xml_file_format
private
def xml_file_format
validates :xml_file, format: /.xml/
end
这也不起作用并产生了错误 ArgumentError: You need to supply at least one validation
。
因此,我的问题:如何指定变量'xml_file'应该是模型文件中的xml文件?
你似乎混淆了两件事:
- XML 文件
- XML 文件的路径
您正在验证 XML 文件的路径,该文件没有 content_type。 (AAMOF,XML 文件也没有 content_type
,但这是一个单独的主题。)
根据Rails Guides,您可以使用:
format: { with: /\.xml\z/ }
在我的一个模型文件中,我想为一个变量(称为 xml_file)指定它应该是一个 xml 文件。到目前为止我所尝试的生成了错误消息。
尝试 1
validates :xml_file, presence: true,
content_type: %w(application/xml)
在 rake test
这产生了错误 ArgumentError: Unknown validator: 'ContentTypeValidator'
。
尝试 2
VALID_XML_REGEX = %w(xml)
validates :xml_file, presence: true,
format: { with: VALID_XML_REGEX }
这在测试中产生了错误 ArgumentError: A regular expression or a proc or lambda must be supplied as :with
。
尝试 3:创建自己的方法
validates :xml_file_format
private
def xml_file_format
validates :xml_file, format: /.xml/
end
这也不起作用并产生了错误 ArgumentError: You need to supply at least one validation
。
因此,我的问题:如何指定变量'xml_file'应该是模型文件中的xml文件?
你似乎混淆了两件事:
- XML 文件
- XML 文件的路径
您正在验证 XML 文件的路径,该文件没有 content_type。 (AAMOF,XML 文件也没有 content_type
,但这是一个单独的主题。)
根据Rails Guides,您可以使用:
format: { with: /\.xml\z/ }