如何在模型文件中指定变量的文件类型?

时间:2015-05-18 18:52:03

标签: ruby-on-rails ruby xml ruby-on-rails-4 model

在我的一个模型文件中,我想为变量(称为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文件吗?

1 个答案:

答案 0 :(得分:0)

你好像混淆了两件事:

  1. XML文件
  2. XML文件的路径
  3. 您正在验证XML文件的路径,该文件没有content_type。 (AAMOF,XML文件也没有content_type,但这是一个单独的主题。)

    根据Rails Guides,您可以使用:

    format: { with: /\.xml\z/ }