我有一个 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