Файл js.erb не запускается при попытке загрузить изображение
У меня внутри коробки для подарков есть эта форма:
<%= simple_form_for(@message, :remote => true, :html => {:multipart => true}, :url => { :controller => "users/messages", :action => "create"} ) do |f| %>
<%= f.error_notification %>
<%= f.input :subject, :input_html => { :maxlength => 500} %>
<%= f.input :message_image, :as => :file %>
<%= f.button :submit, t('.send_message'), :class => 'btn-large btn-primary', "data-disable-with" => t('.send_message'), :confirm => t('.sure_send_message') %>
<% end %>
Это мое творческое действие:
def create
@message = Message.new(params[:message])
respond_to do |format|
if @message.save
format.js { render :partial => "users/messages/templates/sent_by_user/create" }
else
format.js { render :partial => "users/messages/templates/sent_by_user/nosave" }
end
end
end
Файлы create.js.erb
или же nosave.js.erb
файл работает нормально, если я не пытаюсь загрузить изображение
Если я пытаюсь загрузить изображение, эти файлы не отображаются.
Однако в моем журнале я вижу:
Processing by Users::MessagesController#create as JS
Parameters: {"message"=>{"message_image"=>#<ActionDispatch::Http::UploadedFile:0xf7a85c8 @original_filename="cara_enfadada.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"message[message_image]\"; filename=\"cara_enfadada.jpg\"\r\nContent-Type: image/jpeg\r\n", @tempfile=#<File:/tmp/RackMultipart20121015-21710-6oxtn2>>, "subject"=>"estrella de neutronessssssssssss"}, "commit"=>"Enviar mensaje", "utf8"=>"✓", "authenticity_token"=>"mfSsl0HafWoW86YiO2Hj7zMepAITZlHHBtUqW0wzubU=", "remotipart_submitted"=>"true", "X-Requested-With"=>"IFrame", "X-Http-Accept"=>"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01", "locale"=>"es"}
а также
Rendered users/messages/templates/sent_by_user/_nosave.js.erb (0.2ms)
Completed 200 OK in 498ms (Views: 1.5ms | Solr: 0.0ms)
На консоли Google Chrome я получаю следующее предупреждение:
Resource interpreted as Document but transferred with MIME type text/javascript:
Я использую гем remotipart, но не нахожу ошибку... Где ошибка? Спасибо
1 ответ
Я никогда не буду выполнять js.erb, потому что можно просто напрямую загрузить файл (изображение в вашем случае), используя ajax
Вы можете подумать о remotipart или pupload или jqueryfile_upload или uplodify для достижения
Я уверен, что remotipart использовать iframe
Pupload использовать поддержку времени выполнения HTML5 или Flash
загрузить использовать Flash
не уверен в jqueryfile_upload, как никогда не пробовал
Удачи