Загрузите файл Rails Jquery, используя remotipart gem NoMethodError: неопределенный метод `name'
Я использую gem remotipart для загрузки файла. Вот мой взгляд:
<%= form_for @file_upload, :id => "form_feedback_attachment", :url => { :controller => "widgets", :action => "feedback_attachment_upload" }, :html => {:multipart => true} do |f| %>
<td class="rightcol"><%= f.file_field :feedback_attachment, :id => "feedback_attachment_file" %>
<%= f.submit "Upload" %></td>
<% end %>
Мой контроллер:
@file_upload = FileUpload.new
@file_upload.feedback_attachment = params[:file_upload][:feedback_attachment]
respond_to do |format|
if @file_upload.save
format.js
end
end
Но я получаю эту ошибку: NoMethodError: неопределенный метод `name'для nil:NilClass. Я понятия не имею, откуда имя метода и из какого класса. Любая помощь могла бы быть полезна. Спасибо
1 ответ
На первый взгляд - вы не установили:remote => true, что необходимо для работы формы с ajax, поэтому должно быть:
<%= form_for @file_upload, :remote => true, :id => "form_feedback_attachment", :url => { :controller => "widgets", :action => "feedback_attachment_upload" }, :html => {:multipart => true} do |f| %>
На контроллере, если вы используете это действие для чего-то другого, это может быть проблемой, поэтому вы должны обернуть его так:
if @file_upload
@file_upload.feedback_attachment = params[:file_upload][:feedback_attachment]
respond_to do |format|
if @file_upload.save
format.js
end
end
end
Также обратите внимание, что я удалил первую строку. Надеюсь это поможет. {: