无法使用friendly_id rails进行查询

时间:2013-10-07 02:26:03

标签: ruby-on-rails ruby-on-rails-3

这是我的控制器

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时,我可以看到友好的网址,但我看不到任何结果。

1 个答案:

答案 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