Javascript ActionController::UnknownFormat与respond_to js for AJAX
我正在互联网上搜索这个主题,但我不知道AJAX是如何与rails协同工作的,我已经查看了文档,只是不明白而已 我所知道的是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
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 |代码>我已经尝试了该选项,但没有成功