【问题标题】:Ruby On Rails: How to validate a form having file upload field with other fieldsRuby On Rails:如何验证具有文件上传字段和其他字段的表单
【发布时间】:2013-01-26 05:30:16
【问题描述】:

我是 Ruby on Rails(rails 3)的新手。我有一个包含三个字段的表单,在这三个字段中,一个字段是上传文件(rar/tar/zip)。我想知道验证(服务器端)这种允许用户的表单的方法:-

1. Fill in all three fields.
2. Uploaded file should be either rar/tar/zip.
3. Uploaded file should not exceed 2MB in size.

【问题讨论】:

    标签: ruby-on-rails validation file-upload


    【解决方案1】:

    你可以使用回形针 gem 来上传文件。

    class User < ActiveRecord::Base
      attr_accessible :avatar
      has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }
    end
    

    有类似的验证

    validates_attachment :avatar, :presence => true,
      :content_type => { :content_type => "image/jpg" },
      :size => { :in => 0..10.kilobytes}
    

    请参阅https://github.com/thoughtbot/paperclip 了解更多信息。

    【讨论】:

    • 我需要添加哪个宝石?
    • 回形针宝石。使用上面的链接。
    • 是否有可能通过在 GEM 文件中添加一些东西来获得该宝石...类似于“宝石回形针”
    • gems 在 Gemfile 中指定。在 Gemfile 中添加 'gem "paperclip"' 并进行捆绑安装。请阅读 RoR 3 功能。
    • 我添加了代码 validates_attachment :application_path, :presence => true, :with => %r{\.(rar|tar|zip)$}i,:size => { :in => 2000.kilobytes} 但我收到错误“未定义的方法‘键?’对于 nil:NilClass"... 有什么建议吗?这里 application_path 是我的字段名
    【解决方案2】:

    您可以使用此代码,要使用此代码,您必须使用 paperclip gem

    validates_attachment_size :upload, :less_than => 2.megabytes,
                      :with => %r{\.(rar|tar|zip)$}i
    

    【讨论】:

    • 将它添加到我的模型中后,我收到错误“未定义的方法`validates_attachment_size'”
    • @neeraj 我错过了输入,您必须为此使用回形针 gem。回形针 gem 最适合文件上传及其所有要求
    • 我可以通过在我的 gem 文件中添加一些代码来添加那个 GEM 吗...比如“gem 回形针”?
    • 我安装了回形针,我收到错误“#<0x000000041489b8>
    【解决方案3】:

    Validating Presence

    Validating format

    对于大小,我认为您可以从 Rails 指南或仅通过谷歌搜索找出一些东西。

    为了澄清,在用户正在更新的模型中,您希望对三个属性的存在(如该链接中所述)进行验证。然后是 zip 文件字段的格式验证。同样对于大小,当您找到或创建适当的验证时。

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 2016-08-04
      • 2012-12-19
      • 1970-01-01
      • 1970-01-01
      • 2012-05-19
      • 2020-08-18
      • 2018-12-01
      • 1970-01-01
      相关资源
      最近更新 更多