2013-10-07 63 views
0

查詢這是我的控制器無法與friendly_id軌

before_action :seo_url_product,only: :product 

def seo_url_product 
    if params[:id] 
     @posts = Post.friendly.where(sub_category_id: params[:id]).paginate(page: params[:page], per_page: 2).to_a 
    end 
end 

這是我的看法

<% category.sub_categories.each do |sub_category| %> 
    <li><%= link_to sub_category.name, controller: :posts, action: :product, id: sub_category %></li> 
<% end %> 

我可以看到友好的URL當我點擊 - 行業標準,但我看不到任何結果。

回答

1

我認爲問題在於您試圖用slug查詢不是真正的ID。正如你知道的friendly_id使用slu。。所以你應該先找到真正的ID然後嘗試查詢。

Insted of params[:id] in where查詢您可以使用以下方式。

sub_category_id = Sub_category.friendly.find(params[:id]) # This find id insted of slug 
@posts = Post.friendly.where(sub_category_id: sub_category_id).paginate(page: params[:page], per_page: 2).to_a