我正在构建一个 web 应用程序,它的 UI 分为两侧、一个菜单栏和一个内容区域。菜单栏列出了用户撰写的所有博客的标题。单击标题时,内容区域应更改以显示该博客的帖子。
1.)所以在我的菜单栏上,我有:
<%= link_to blog.title, blog, :remote=>true %>
在我的内容领域,我有:
<div id="contenthere"></div>
2.)所以根据我的理解,这应该会触发博客控制器的 show 方法。在那里,我在方法中有以下内容:
@blog = Blog.find(params[:id])
respond_to do |format|
format.js { render :show_blog }
end
3.)应该在views/blogs文件夹中寻找一个名为show_blog.js.erb的文件:
$("#contenthere").html("<%=escape_javascript(render :partial=>"show_blog")%>");
这将使我的 div 带有 commenthere id 并呈现 _show_blog.html.erb 部分(位于博客视图文件夹中),其 blog 参数等于在我的博客控制器中设置的 @blog 参数。
4.) 所以我的节目博客部分有这个代码:
<%=@blog.title %>
<%=@blog.user_id %>
编辑:实际上,我四处搜索,发现我不能使用资产文件夹中的“渲染”方法——那我应该把 js.erb 放在哪里?我已将其移至博客视图文件夹、主视图文件夹 (index.html.erb) 和 /view/ 文件夹...错误消失了,但链接不起作用...
编辑:将 show_blog.js.erb 放在我的视图/博客文件夹中,因为它是博客控制器调用它。当我单击链接并且控制台中没有显示 JS 错误时,什么也没有发生。js被调用了吗?
编辑:更改以反映我的最终答案。