2011-11-14 1 views
0

url 매개 변수에 표시되는 것과 동일한 범주의 블로그 목록을 표시하려고했습니다. 그러나 링크를 클릭하면 여전히 같은 페이지에 머물러 있습니다.ruby의 url 매개 변수에서보기를 표시 할 수 없습니다.

경로 링크가 category_list보기 입력을 클릭 한 후

match '/microposts/:category', :to => 'microposts#category_list' 

보기

<h2>sidebar</h2> 
    <% @categories= Micropost.select("category").group("category")%> 
    <% unless @categories.nil? %> 
    <ul><% @categories.each do |category| %> 
    <li><%= link_to category.category, :controller =>"microposts", :category => category.category,  :method => 'category_list' %></li> 

    <% end %> 
</ul> 
<% end %> 

.

category_list.html.erb

<h2>Catergory</h2> 
<% @microposts.each do |post|%> 
<article> 
    <h4><%= link_to post.title, post %>|  <%= post.created_at %></h4> 
</article> 
<% end %> 
<%= will_paginate @microposts %> 

microposts 컨트롤러

def category_list 
    @micropost = Micropost.select("category").where(params[:category]) 
    @title = "Category"  
end 

답변

0

좋아,이 시도 :

업데이트 :

microposts_controller.rb

,
def category_list 
    @microposts = Micropost.where('category = ?', params[:category]) 
    @categories = Micropost.select('DISTINCT(category)').map(&:category).compact 
    ... 
end 

routes.rb

match '/microposts/:category' => 'microposts#category_list', :as => :microposts_category_list 

_sidebar.html.erb

<h2>sidebar</h2> 
<% unless @categories.empty? %> 
    <ul> 
    <% @categories.each do |category| %> 
     <li><%= link_to category, microposts_category_list_path(category) %></li> 
    <% end %> 
    </ul> 
<% end %> 
+0

나는 아직도 내가 그것을 변경 한 경우에도이를 표시 couldnt한다. 자동으로 내 색인 페이지로 이동합니다. http : // localhost : 3000/microposts? category = written & method = category_list 의 URL을 사용하면 정렬 할 수 있도록 도와 주시면 대단히 기쁩니다 ... 몇 시간 동안이 문제로 인해 당황 스러웠습니다 ... –

+0

내 대답 –

+0

'microposts_category_list_path '메서드가 정의되지 않았습니다. _sidebar는 views/layouts/_sidebar에 있습니다. 보기/마이크로 게시/카테고리 목록으로 전송해야합니다. 도움 주셔서 감사합니다. =) –

관련 문제