我有一个用户的仪表板页面,其中左侧有一个工具栏,博客等链接的边栏。我希望能够点击链接,如“项目”链接和那么在主区域中,项目的视图会加载(视图将是项目的项目符号列表),而不必刷新页面。我试图让AJAX发生这种情况,但事情并不奏效。AJAX调用渲染Rails部分3
下面是我认为它应该工作的方式。其中/dash
配置为路由到用户#侧边栏链接,用户点击show.html.erb
<%= link_to 'Projects', '/dash', remote: true %>
显示在config/routes.rb
文件是这样的:
match '/dash' => 'users#show'
,然后将show
动作被称为users_controller.rb
控制器:
def show
@user = User.find(params[:id])
@projects = @user.projects
respond_to do |format|
format.html # renders show.html.erb
format.js # renders show.js.erb
end
end
其中show.js.erb
被执行。我show.js.erb
文件中有这样一行:
$('#ajax').html("<%= escape_javascript(render(:partial => 'projects/index')).html_safe %>");
这应该修改#ajax格在我的show.html.erb
:
<div id="ajax">
<%= render :template => 'projects/index' %>
</div>
的app/views/projects/index.html.rb
发生在@projects并给出了一个列表,就像这样:
<% @projects.each do |project| %>
<p><%= project.name %></p>
<% end %>
显然,我做错了事,因为这是行不通的。我究竟做错了什么?是否有一些代码需要在其他地方更改?我在Rails 3.2.13上,所以//=jquery
和//=jquery_ujs
下的app/assets/javascripts/application.js
应该已经导入了必要的jQuery和AJAX功能。