2011-11-14 10 views
0

urlパラメータに表示されているのと同じカテゴリのブログのリストを表示しようとしていました。しかし、リンクをクリックすると、同じページにとどまります。リンクはcategory_listビューを入力してクリックした後ルービーのurlパラメータからビューを表示できません

ルート

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

マイクロポストコントローラ

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

答えて

0

[OK]を、これを試してみてください。

更新日:

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

私は更新しました私は未定義のメソッド 'microposts_category_list_pathは」 _sidebarは、ビュー/レイアウトである/ _sidebar は、ビュー/マイクロポスト/ category_list に転送する必要が取得する私の答え –

+0

はあなたの助けをいただき、ありがとうございます。 =) –

関連する問題