使用ajax渲染不同的部分 - rails 3

时间:2012-07-27 16:03:57

标签: ruby-on-rails ruby ruby-on-rails-3 jquery

我正在尝试使用link_to为每个导航标签链接显示不同的部分通过jquery ajax。

但似乎无法使其工作,它将每个链接重定向到根索引。

我想点击导航菜单中的链接,并在个人资料数据div中显示该链接的部分内容:_grundskola.html.erb_gymnasium.html.erb_universitet.html.erb

示例:

我理解,例如导航链接“universitet”应该调用动作def universitet,它会调用universitet.js.erb在div中呈现部分_universitet.html.erb

导航菜单 - 在show.html.erb

 <ul class="nav nav-tabs">
  <li><%= link_to "Grundskola", :action => 'grundskola', :remote => true  %></li>
  <li class="active"><%= link_to "Gymnasium", :action => 'gymnasium', :remote => true %></li>
  <li><%= link_to "Universitet & Högskola", :action => 'universitet', :remote => true %></li>    
 </ul>

user_controller.rb

def universitet
    respond_to do |format|
      format.js
    end
  end

universitet.js.rb

$("profile-data").html("<%= escape_javascript(render(:partial => 'universitet')) %>");

_universitet.html.erb

<% groups = @user.friends.group_by(&:college_name) %>
<% sorted_groups = groups.sort_by{|key, values| values.count}.reverse %>
<% sorted_groups.each do |collegename, friends| %>
<% next if collegename.blank? %>
<div class="contentbox">
    <div class="box-header">
        <h3><%= collegename %></h3>
        <div class="meta-info">
            <p><i class="icon-map-marker"></i> Malmö</p>
            <p><i class="icon-user"></i><span class="count"> <%= friends.count %></span> vänner</p>
        </div>
    </div>
    <ul class="friends-list">
        <% friends.map do |friend| %>
        <li><%= image_tag(friend.image) %>
            <% end %> 
        </ul> 
    </div>
<% end %>

我得到错误的链接结构,html输出:

<li><a href="/auth/failure?action=universitet&amp;controller=users&amp;remote=true">Universitet &amp; Högskola</a></li>

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试在链接中添加格式

例如

<li><%= link_to "Grundskola", {:action => 'grundskola',:format=>:js}, :remote => true  %></li>