ActionController::UnknownFormat 仅 format.js 出错

ActionController::UnknownFormat Error for only format.js

我只是在使用-

respond_to do |format|
    format.js
end

在我的创建操作中。不知道为什么,但我收到 UnknownFormat 错误。如果我同时输入 "format.html" 和 "format.js",错误就消失了。但我想留在同一页面并拨打 ajax 电话。对于所有可能的搜索,我已经浏览了大约 5 页 google 的搜索结果,但仍然没有任何效果。有人可以帮我从这里出去吗?

我的表格是这样的-

<%= form_for [:home, Photo.new], remote: true, :html => {:id => "new-photo-form"} do |f| %>

    <div id="upload-field">
        <%= f.file_field :image %>
    </div>

    <%= f.hidden_field :album_id, :value => album.id %>

    <div id="photo-add-link">
        <%= link_to 'Add Selected Images', '#', remote: true, :onclick => "$('#new-photo-form').submit()" %>
    </div>

<% end %>

服务器日志 -

Started POST "/home/photos" for 127.0.0.1 at 2016-12-28 08:23:38 +0530
Processing by Home::PhotosController#create as HTML
Parameters: {"utf8"=>"✓", "photo"=>{"image"=>#  <ActionDispatch::Http::UploadedFile:0x007fd5541a0578 @tempfile=#  <Tempfile:/tmp/RackMultipart20161228-6069-175ahz0.jpg>,   @original_filename="emilia-clark.jpg", @content_type="image/jpeg",   @headers="Content-Disposition: form-data; name=\"photo[image]\";   filename=\"emilia-clark.jpg\"\r\nContent-Type: image/jpeg\r\n">,   "album_id"=>"68"}}
User Load (0.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 1]]
Completed 406 Not Acceptable in 2ms (ActiveRecord: 0.1ms)

ActionController::UnknownFormat (ActionController::UnknownFormat):
app/controllers/home/photos_controller.rb:11:in `create'


Rendered /home/santhosh/.rvm/gems/ruby-2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_source.erb (3.4ms)
Rendered /home/santhosh/.rvm/gems/ruby-2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.7ms)
Rendered /home/santhosh/.rvm/gems/ruby-2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (0.8ms)
Rendered /home/santhosh/.rvm/gems/ruby-2.3.0/gems/actionpack-  4.2.6/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (16.2ms)
Rendered /home/santhosh/.rvm/gems/ruby-2.3.0/gems/web-console-2.3.0/lib/web_console/templates/_markup.html.erb (0.3ms)
Rendered /home/santhosh/.rvm/gems/ruby-2.3.0/gems/web-console-2.3.0/lib/web_console/templates/_inner_console_markup.html.erb within layouts/inlined_string (0.2ms)
Rendered /home/santhosh/.rvm/gems/ruby-2.3.0/gems/web-console-2.3.0/lib/web_console/templates/_prompt_box_markup.html.erb within layouts/inlined_string (0.4ms)
Rendered /home/santhosh/.rvm/gems/ruby-2.3.0/gems/web-console-2.3.0/lib/web_console/templates/style.css.erb within layouts/inlined_string (1.2ms)
Rendered /home/santhosh/.rvm/gems/ruby-2.3.0/gems/web-console-2.3.0/lib/web_console/templates/console.js.erb within layouts/javascript (16.2ms)
Rendered /home/santhosh/.rvm/gems/ruby-2.3.0/gems/web-console-2.3.0/lib/web_console/templates/main.js.erb within layouts/javascript (0.2ms)
Rendered /home/santhosh/.rvm/gems/ruby-2.3.0/gems/web-console-2.3.0/lib/web_console/templates/error_page.js.erb within layouts/javascript (0.4ms)
Rendered /home/santhosh/.rvm/gems/ruby-2.3.0/gems/web-console-  2.3.0/lib/web_console/templates/index.html.erb (29.5ms)

我注意到您在表单中使用了 file_field。 JavaScript 无权访问您的文件系统,因此您无法创建 ajax 上传文件的请求。有一些 gems 可以解决这个问题。检查 this gem.