2013-08-16 6 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 
에서

bundle exec rake routes 

:개

레일이 http://host/shopping_lists/2

위의 유사한 링크 무언가를 창조해야 할 것은 실행할 수있는 가능한 경로 및 방법의 목록을 보려면

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

위한 속기 귀하의 레일 애플 리케이션의 루트

+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) %>