Ruby on rails 未触发js.erb文件

Ruby on rails 未触发js.erb文件,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,erb,filterrific,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 4,Erb,Filterrific,我有三个文件: 控制器: def index @filterrific = initialize_filterrific( DimDictionary, params[:filterrific], select_options: {}, persistence_id: 'shared_key', default_filter_params: {}, available_filters: [ :dictionar

我有三个文件: 控制器:

   def index
    @filterrific = initialize_filterrific(
      DimDictionary,
      params[:filterrific],
      select_options: {},
      persistence_id: 'shared_key',
      default_filter_params: {},
      available_filters: [ :dictionary_word_filter ]
    ) || return

    @dictionaries = @filterrific.find.limit(30)

    respond_to do |format|
      format.html
      format.js
    end
  end
Index.html.haml

= form_for_filterrific @filterrific do |f|
  .ui.form
    .fields
      .field
        Filter Word
        = f.text_field :dictionary_word_filter
  = render_filterrific_spinner
= render(partial: '/test/list', locals: { dictionaries: @dictionaries })
Index.js.erb

<% alert("hi"); %>
<% console.log('working Mannnnn') %>
<%  js = escape_javascript(render(partial: '/test/list', locals: { dictionaries: @dictionaries })) %>
$("#filterrific_results").html("<%= js %>");

$(“#filterrific_results”).html(“”);
未触发
Index.js.erb
。每次加载页面时,its都应该运行
Index.js.erb
,并显示警报和console.log以及显示html,对吗?或者js.erb只会在ajax请求时触发

我在这里使用
filterrific gem
进行过滤,但index.js.erb文件从未被触发

甚至我的控制器中也包含了js格式。应该怎样?我做错什么了吗

每次加载页面时,它都应该运行Index.js.erb并显示 警报和console.log以及显示html对吗

不,
format.js
意味着,当客户端需要js时,您的控制器返回js作为响应

例如,如果您想在responnse中使用JS,那么应该使用
remote:true
。不可能同时呈现这两个请求,因为控制器操作一次只能响应一个HTTP请求

有关Rails中响应的更多信息:

关于Rails中的javascript:

因此,如果您阅读本gems文档。他们正在触发对控制器的ajax调用,然后erb自动更新列表,但问题是每次我执行某些操作时,gem表单从未触发对我的后端DSO的调用,您的问题可能与gem的配置有关。控制台中有错误的日志吗?没有错误,就像没有一样。我以前在其他项目中使用过这个gem,但现在我面临着这个问题。我已经正确地配置了所有东西,但它似乎仍然有效。也许您可以检查一下,您可以查看filterrific演示源代码:并比较您的代码。检查是否将filterrific/filterrific jquery附加到application.js