【问题标题】:Validations not being applied during CSV uploadCSV 上传期间未应用验证
【发布时间】:2015-09-01 18:55:08
【问题描述】:

我的模型有以下内容:

validates_uniqueness_of :batch, :scope => :projectid

 def self.import(csv_file)
    CSV.foreach(csv_file, headers: true) do |row|
      Order.create! row.to_hash
    end
  end

无论验证如何,csv 都会上传并放入数据库中(我故意尝试插入一条应该违反该验证的记录)。我不确定为什么允许它在上传时违反该验证。

控制器:

  def import
    Order.import(params[:csv_file].tempfile)
    redirect_to orders_path, :notice => "Orders imported"
  end

表格:

<%= form_tag import_orders_path, multipart: true do %>
  <div class="controls">
  <%= file_field_tag :csv_file, accept: 'csv', :class => 'btn btn-xs btn-info' %>    
  <%= submit_tag "Upload Orders", :class => 'btn btn-xs btn-success' %>
  </div>

【问题讨论】:

    标签: ruby-on-rails validation csv ruby-on-rails-4


    【解决方案1】:
    def self.import(csv_file)
        order = Order.new
        if order.valid? == false
          nil
        else
          CSV.foreach(csv_file, headers: true) do |row|
            Order.create! row.to_hash
          end
        end
      end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-23
      • 2019-09-09
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      • 2017-12-03
      • 2017-06-18
      • 2023-04-10
      相关资源
      最近更新 更多