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