0

看來,這是害我頭痛,可能是一些簡單的...我有一個方法,組織了所有我的書一起類別廣東話鏈接屬於一個類別對象

def self.categories_list 
joins(:books). 
select('categories.id, categories.name, count(*) AS books_count'). 
group('categories.id, categories.name'). 
order('books_count DESC') 
end 

我可以輸出他們我的看法,像這樣

@bookcategories = Category.categories_list 

我想要做的就是鏈接所有的書屬於通過在視圖中點擊「計算」說「計算」

<% @bookcategories.each do |b| %> 
    <li><%= link_to b.name, category_path(b.name) %></li> 
<% end %> 

這應該帶我到我的節目我的類別控制器

def show 
    @category = Category.where(:name => params[:name]).first 
    @categorisedbooks = @category.books #get me all books that have the category name 
    end 

的動作和表演動作視圖

<div class="container"> 
    <div class="row "> 
    <div class="span12">  
    <% @categorisedbooks.each do |c| %> 
     <%= image_tag c.avatar.url(:medium), :class=> "allBooksCover" %> 
    <% end %> 
    </div> 
    </div> 
</div> 

所以,當我點擊「計算」例如我得到

undefined method `books' for nil:NilClass 

和params正在通過爲

Parameters:{"id"=>"Computing"} 

林有點失去了這一個,如果有人能幫助我們將不勝感激

感謝

回答

1

所以,你在你的show行動需要

@category = Category.where(:name => params[:id]).first 
# etc 
+0

你開玩笑...不敢相信我沒有做到這一點,所以它的名稱(類別名稱)與書 – Richlewis

+0

的編號相匹配謝謝你的方式 – Richlewis