【问题标题】:Disabling submit button file_field禁用提交按钮 file_field
【发布时间】:2012-06-07 15:07:23
【问题描述】:

我有一个 file_field 选项,我可以在其中导航到 csv 文件以上传一系列用户。我目前能够在不添加文件的情​​况下单击上传用户按钮。我想确保我捕捉到这个 nil 异常,但似乎无法弄清楚如何去做。我应该更改我的控制器还是通过以某种方式禁用按钮来更改表单

我有以下简单的文件上传表格:

<%= simple_form_for :tenant, :html => {:multipart => true}, :url => users_path do |f| %>
  <%= f.file_field :csv, :label => 'CSV File' %>
  <%= f.submit 'Upload Users' %>
<% end %>

我在控制器中有以下视图:

def upload
  if request.post?
    if params[:tenant][:csv].blank?
      flash[:notice] = "Please provide a csv file to upload."
    else
      file = params[:tenant][:csv].read   
      CSV.parse(file, headers: true, header_converters: :symbol).each { |row| User.create(row.to_hash) }
    end 

    respond_to do |format|
      format.html { redirect_to users_path }
      format.json { head :no_content }
    end    
  else
    # Return view
  end   
end

【问题讨论】:

    标签: ruby-on-rails-3 controller simple-form filefield


    【解决方案1】:

    您可以进行客户端验证或服务器端。我建议将服务器端作为起点。根据我在您的控制器中看到的内容,您似乎没有用于 csv 上传的模型。最好将控制器 csv 代码重构为模型,因为逻辑不属于控制器。一旦你有了 csv 上传的模型,

    validates_presence_of :file

    在模型中应该可以解决问题。

    如果您不熟悉无表模型,请查看 railscast #219。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-16
      • 2011-03-12
      • 2010-12-30
      • 2013-06-11
      • 2016-04-03
      • 2013-10-02
      • 2015-11-10
      • 2018-07-11
      相关资源
      最近更新 更多