这是我的控制器
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 %>
当我点击sub_categories时,我可以看到友好的网址,但我看不到任何结果。
答案 0 :(得分:1)
我认为问题在于您尝试使用slug
查询而不是真实ID。如你所知friendly_id使用slug。所以你应该首先找到真实的id,然后尝试查询。
params[:id]
在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