【问题标题】:Render different partials with ajax - rails 3使用 ajax 渲染不同的局部 - rails 3
【发布时间】:2012-07-26 08:28:07
【问题描述】:

我正在尝试通过 jQuery ajax 为每个导航选项卡链接获取一个 link_to 来显示不同的部分。

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

我想单击导航菜单中的链接并显示部分链接:_grundskola.html.erb_gymnasium.html.erb_universitet.html.erb,用于配置文件数据 div 中的该链接。

示例:

我知道,例如导航链接“universitet”应该调用调用universitet.js.erb 的操作def universitet,这会在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>

任何帮助将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    尝试为链接添加格式

    例子

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

    【讨论】:

    • - 不起作用:/ 给出这个 html 输出:
    • Grundskola
  • 你把 :action 和 :controller 放在 {} 里面了吗?
  • 我认为您的项目中有一些前置过滤器或身份验证机制会导致重定向,请检查一下。
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签