【发布时间】:2026-01-19 07:20:04
【问题描述】:
我一直在努力让 AJAX 上传表单正常工作。我正在使用 Rails 3.2。我将gem "remotipart", "~> 1.0" 放入我的Gemfile 中,运行bundle install 并成功安装。
我之前有这个非 ajax 上传表单,我根据 github page 上的文献添加了 :remote => true :
<%= form_tag "/administration/data_imports", :multipart => true, :remote => true %>
<label for="file">Input File</label> <%= file_field_tag "file" %>
<button type="submit">Import Data</button>
</form>
这在我的data_imports_controller create 行动中:
def create
file = params[:file]
filename = file.original_filename
end
我在我的页面上为 jquery.remotipart.js 添加了一个 javascript 包含,因为它感觉很重要,尽管没有明确的说明这样做..
我试过了,但没有给出服务器错误:
Completed 500 Internal Server Error in 4ms
NoMethodError (undefined method `original_filename' for nil:NilClass):
app/controllers/data_imports_controller.rb:16:in `create'
很明显我做错了什么,但我需要帮助。
【问题讨论】:
-
您是否可以通过添加
:remote => true选项进行更改后粘贴您的新视图文件 -
请尝试使用下面的答案。问题在于您如何声明您的多部分选项
-
如果有人想推荐我打勾的答案,请继续。我很久以前就放弃了这个想法,并且从未真正得到令人满意的解决方案,所以我不确定哪个是最好的答案,干杯!
标签: ruby-on-rails ajax upload