0

在我的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/ 文件夹中创建index.js.erb文件:

$('.b-content-container').html("<%=j render @webinars %>");

以下是我在application.html.erb文件中创建链接的方式:

但是单击链接我得到 interal serve 错误,它指向我的application.js中的这段代码:

// 发送请求

// 这可能会引发一个异常,实际上是

// 在 jQuery.ajax 中处理(所以这里没有 try/catch)

xhr.send( ( s.hasContent && s.data ) || null );

4

1 回答 1

0

为了解决这个问题,我必须使用render渲染函数的:template选项来指定模板,并使用:collection将数据传递给当前模板。

> <%=j render template:'webinars/index' , collection:@webinars
> %>

这仍然失败,因为在视图文件夹中我有一个名为:index.js.erb的部分,并且 Rails 无法理解我想要呈现的内容,所以我也需要指定模板扩展名:

> <%=j render template:'webinars/index.html.erb' , collection:@webinars
> %>
于 2013-05-19T08:09:41.590 回答