2013-08-16 27 views
1

我有一個側邊欄,其中包含所有用戶的鏈接:shopping_lists。點擊其中一個鏈接後,我想呈現一個顯示該特定列表中的:list_items的頁面。這裏是我的側邊欄部分:通過以下方式渲染視圖中的元素:id

<aside class="sidebar-nav-fixed"> 

    <h1>My Lists</h1> 

    <% if user_signed_in? %> 
     <% current_user.shopping_lists.each do |l| %> 
      <ul> 
       <%= link_to "#{l.name}", '#' %> 
      </ul> 
     <% end %> 
    <% else %> 
     <h5><%= link_to "Sign in to manage lists.", new_user_session_path %></h5> 
    <% end %> 
</aside> 

我的問題是:什麼路我會在我的地方目前的樁鏈路來投入,以傳遞到正確的名單?提前致謝!

回答

1

有兩件事情可以做,你授予的航線設置正確:

最簡單的是:

link_to "#{l.name}", l 

Rails的應該創建一個類似於http://host/shopping_lists/2

上面的鏈接什麼是

link_to "#{l.name}", shopping_list_path(l) 

速記要查看可用的路線和方法的列表,你可以運行:

bundle exec rake routes 

你的Rails應用程序的根本

+0

完成我的壞控制器命名習慣後完美工作。作爲後續行動,一旦我着眼於這一觀點,我如何才能在該觀點中引用該列表的id:?例如,如果我想用':id''2'顯示該列表中的所有列表項(如你給出的例子)。謝謝! – settheline

+0

抱歉有延遲。這實際上與你的模型設置有關。從技術上講,你可以遍歷視圖中列表中的所有項目(當然使用急切加載)。如果您可以通過示例說明如何對購物清單進行建模並遷移設置,我可以給您一個更詳細的答案。 – konung

2

這將取決於您的路線如何設置。我希望購物清單總是在用戶的環境中,所以大概是這樣的:

<%= link_to l.name, user_shopping_list_path(current_user, l) %> 

如果購物清單是頂級路線,那麼很可能是這樣的:

<%= link_to l.name, shopping_list_path(l) %>