在我的 application.html.erb 文件中,我有一些链接和<%= yield%> 。我想要的是点击链接,在<%= yield%> 字段中呈现的视图,而不刷新整个页面。
所以,我开始用ajax实现这个,但我做错了,需要一些帮助。
这就是我所做的:
在我的webinars_controller.rb 索引方法中,我添加了 format.js :
respond_to do |format| format.html format.js format.json { render json: @webinars } end
然后在/ app / views / webinars / folder中创建 index.js.erb 文件:
$('.b-content-container').html("<%=j render @webinars %>");
以下是我在 application.html.erb 文件中创建链接的方式:
但点击我得到interal的链接会发出错误,指出我在 application.js 中的代码:
//发送请求
//这可能会引发一个实际上是
的异常//在jQuery.ajax中处理(所以没有试试/ catch)
xhr.send((s.hasContent&amp;&amp; s.data)|| null);
答案 0 :(得分:0)
为了解决这个问题,我必须使用渲染render函数的:template 选项来指定模板,并使用:collection 来传递数据到当前模板。
> <%=j render template:'webinars/index' , collection:@webinars > %>
这仍然失败,因为在views文件夹中我有一个名为: index.js.erb 的部分,并且某种程度上rails无法理解我想要呈现的内容,所以我需要指定模板扩展名也是:
> <%=j render template:'webinars/index.html.erb' , collection:@webinars > %>