Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 尝试呈现AJAX响应时,“缺少此请求格式和变体的模板。”_Jquery_Ruby On Rails_Ajax - Fatal编程技术网

Jquery 尝试呈现AJAX响应时,“缺少此请求格式和变体的模板。”

Jquery 尝试呈现AJAX响应时,“缺少此请求格式和变体的模板。”,jquery,ruby-on-rails,ajax,Jquery,Ruby On Rails,Ajax,我试图在这里使用select_标记来过滤汉字单词列表。 我的想法是,当用户从下拉菜单->自动提交表单->使用AJAX选择选项时,可以按课程操作进行搜索,并将数据填充到汉字列表中。但我有两个问题: 虽然在我的form_标签中有remote:true,但当我从下拉列表中选择时,浏览器仍会导航到一个新页面http://localhost:3000/search_kanjis_by_lesson?lesson=1 但不会停留在索引页上。 标题中的错误。虽然我希望这个search_by_课程仅通过ajax

我试图在这里使用select_标记来过滤汉字单词列表。 我的想法是,当用户从下拉菜单->自动提交表单->使用AJAX选择选项时,可以按课程操作进行搜索,并将数据填充到汉字列表中。但我有两个问题:

虽然在我的form_标签中有remote:true,但当我从下拉列表中选择时,浏览器仍会导航到一个新页面http://localhost:3000/search_kanjis_by_lesson?lesson=1 但不会停留在索引页上。 标题中的错误。虽然我希望这个search_by_课程仅通过ajax渲染,但我不希望在文件夹中单独使用search_by_lesson.html.erb。 这是我的index.html.erb

<%= form_tag search_kanjis_by_lesson_path, method: :get, remote: true do %>
<%= select_tag :lesson, options_for_select(@lessons), include_blank: true %>
<% end %>
这是我的路线

resources :kanjis

get '/search_kanjis_by_lesson', to: 'kanjis#search_by_lesson', as: :search_kanjis_by_lesson
在我的kanjis_controllers.rb中

class KanjisController < ApplicationController 

    # ... other generic actions: edit, show ...

    def index
        @kanjis = Kanji.all
        @lessons = [*1..32]     # @lessons is just an array of int.
    end

    def search_by_lesson
        @kanjis = Kanji.find_by_lesson params[:lesson]
    end
end
最后,我有一个search_by_lesson.js.erb

$("#kanji-list").html("<%= escape_javascript(render 'index') %>")
$(".kanji_list").html("<%= escape_javascript(render 'index') %>")

这应该对你有用

在index.html.erb中

<%= form_tag search_kanjis_by_lesson_path, method: :get, remote: true do %>
<%= select_tag :lesson, options_for_select(@lessons), include_blank: true %>
<% end %>
在您的控制器中

    def search_by_lesson
      @kanjis = Kanji.find_by_lesson params[:lesson]
      respond_to do |format|
       format.js
      end
    end
在您的搜索中_by_lesson.js.erb

$("#kanji-list").html("<%= escape_javascript(render 'index') %>")
$(".kanji_list").html("<%= escape_javascript(render 'index') %>")

这应该对你有用

在index.html.erb中

<%= form_tag search_kanjis_by_lesson_path, method: :get, remote: true do %>
<%= select_tag :lesson, options_for_select(@lessons), include_blank: true %>
<% end %>
在您的控制器中

    def search_by_lesson
      @kanjis = Kanji.find_by_lesson params[:lesson]
      respond_to do |format|
       format.js
      end
    end
在您的搜索中_by_lesson.js.erb

$("#kanji-list").html("<%= escape_javascript(render 'index') %>")
$(".kanji_list").html("<%= escape_javascript(render 'index') %>")

尝试在控制器中添加respond_to block在控制器中添加respond_to block现在我有另一个错误:ActionController::UnknownFormat at line respond_to do | format |如果请求正在处理中,js或htmlI编辑了我的答案,请检查日志。尝试该代码现在应该可以工作了我有另一个错误:ActionController::UnknownFormat at line respond|u to do | format |如果请求正在处理中,请检查日志,因为js或htmlI已经编辑了我的答案。试试那个代码,它应该能工作