Javascript ActionController::UnknownFormat与respond_to js for AJAX

Javascript ActionController::UnknownFormat与respond_to js for AJAX,javascript,ruby-on-rails,ajax,ruby-on-rails-5,Javascript,Ruby On Rails,Ajax,Ruby On Rails 5,我正在互联网上搜索这个主题,但我不知道AJAX是如何与rails协同工作的,我已经查看了文档,只是不明白而已 我所知道的是AJAX是异步的,只需将此代码放入视图中即可发出请求:“remote:true”,我不明白的一点是关于此代码: 回复:js 显然,它告诉控制器它将响应Javascript,你必须为你想用JS做的任何事情创建一个文件,我的项目结构如下: 看法 New.html.erb: <p>Imagen de portada</p> <%= simple_fo

我正在互联网上搜索这个主题,但我不知道AJAX是如何与rails协同工作的,我已经查看了文档,只是不明白而已

我所知道的是AJAX是异步的,只需将此代码放入视图中即可发出请求:“
remote:true
”,我不明白的一点是关于此代码:

回复:js

显然,它告诉控制器它将响应Javascript,你必须为你想用JS做的任何事情创建一个文件,我的项目结构如下:

看法

New.html.erb:

<p>Imagen de portada</p>

<%= simple_form_for @entries, remote: true do |f| %>   
  <% f.file_field 'input-image' %> 
<% end %> 
<div id="image-entry"></div>
控制器路由:

<p>Imagen de portada</p>

<%= simple_form_for @entries, remote: true do |f| %>   
  <% f.file_field 'input-image' %> 
<% end %> 
<div id="image-entry"></div>
控制器
|
-->管理员
|
-->条目\u controller.erb

JS

new.js.erb

module Admins
  class EntriesController < ApplicationController
    before_action :authenticate_admin!

    def index
      render 'index'
    end

    def new
      @entries=''
      render 'new'
      respond_to :js
    end
  end
end
console.log('funciona');

$('#input-image').click(function(){
  $('body').css('background-color', 'red');
});
JS路线:

<p>Imagen de portada</p>

<%= simple_form_for @entries, remote: true do |f| %>   
  <% f.file_field 'input-image' %> 
<% end %> 
<div id="image-entry"></div>
视图
|
-->管理员
|
-->条目
|-->new.html.erb
|-->new.js.erb

错误

我在这段代码中的错误如下:

ActionController::UnknownFormat

因此,我对这个错误有疑问,JS中的正确文件名是什么,以使
响应
正常工作。

Irfan Fadilah在Facebook上的回答:

<p>Imagen de portada</p>

<%= simple_form_for @entries, remote: true do |f| %>   
  <% f.file_field 'input-image' %> 
<% end %> 
<div id="image-entry"></div>
EntriesController中的“新建”方法不会处理您的请求。默认的表单方法是POST,因此Rails将在EntriesController中查找“create”方法

有关更多详细信息,请阅读《Rails指南》中的RESTful路由

为了使您的AJAX请求生效。在EntriesController中添加“create”方法,并在视图/条目中创建.js.erb(只需编写警报(“Hello”);或测试它的内容)


拥有
render:new
可能会导致
respond\u to:js
。尝试传递一个更正式、更明确的块
respond|u to do | f |我已经尝试了该选项,但没有成功