0

これが私のコントローラーです

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 をクリックするとわかりやすい URL が表示されますが、結果は表示されません。

4

1 に答える 1

1

slug問題は、実際の ID ではなくクエリを実行しようとしていることだと思います。ご存じのとおり、 Friendly_id はスラッグを使用します。したがって、最初に実際の 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
于 2014-06-11T06:32:45.607 に答える