2011-09-27 30 views
1

我使用Rails和jQuery UI來實現每個用戶的配置文件中的選項卡。我沒有Ajax的工作 - 與阿賈克斯,東西南下。我是Rails和jQuery的新手,希望有人能幫助我確定哪裏出了問題。從jQuery UI選項卡與AJAX路由錯誤

  • <div id="tabs-1">是第一個選項卡,默認情況下它與ProfilesController關聯。這通過使用<a href>
  • <div id="tabs-2">將訪問MessagesController並加載加載@user.messages的部分show_messages

相反,當我點擊「消息」時,我在配置文件#show中出現了ActionController :: Routing錯誤。

No route matches {:action=>"show", :controller=>"messages", :id=>[#<Message id: 3, user_id: 2,...>, #<Message id: 4, user_id: 2,...">]} 

我的代碼如下:

的application.js:

$(function() { 
    $("#tabs").tabs({ 
     ajaxOptions: { 
      error: function(xhr, status, index, anchor) { 
       $(anchor.hash).html(
        "Couldn't load this tab. We'll try to fix this as soon as possible. " + 
        "If this wouldn't be a demo."); 
      } 
     } 
    }); 
}); 

我的個人資料show.html.erb

<div id="tabs"> 
    <ul id="infoContainer"> 
     <li><a href="#tabs-1"></a></li> 
     <li><%= link_to "Messages", message_path(@user.messages) %></a></li> 
    <ul> 
    <div id="tabs-1"> 
    </div> 
</div> 

_show_messages部分在MessagesController:

<div id="tabs-2"> 
    <% for 'message' in @user.messages %> 
     <div class="message"> 
     </div> 
    <% end %> 
</div> 

回答

0

在show.html.erb message_path(@ users.messages)是錯誤的。嘗試messages_path,它應該指向消息controllr的索引操作。在這裏,我假設你正在使用標準的Rails對流消息路由。