Я хочу объединить подобные методы и взгляды на один, но все же сохранить имя URL-адрес, как следующее:Как объединить много подобных методов и взглядов в один
Home/recommends/categories/shopping
Home/recommends/categories/nightview
Home/recommends/categories/food
Home/recommends/categories/area
Я не хочу использовать Params как "?something=xyz"
в url.
В routes.rb
:
resources :recommends, only: :index do
collection do
resources :categories, only: :show, controller: 'recommends' do
collection do
get :food
get :area
get :shopping
get :nightview
end
end
end
end
В контроллерах:
def food
set_paginator
@recommends = UserRecommend.where(category: "food").order('created_at desc').offset(@offset).limit(@limit).all
@number_of_recommends = UserRecommend.where(category: "food").count
end
def area
set_paginator
@recommends = UserRecommend.where(category: "area").order('created_at desc').offset(@offset).limit(@limit).all
@number_of_recommends = UserRecommend.where(category: "area").count
end
...
В взглядов у меня есть:
food.html.slim
area.html.slim
shopping.slim
nightview.slim
, которые используют один и тот же код, просто разные названия в h1
:
h1
| Shopping (or Area or Food...)
= " (#{@number_of_recommends})"
= render partial: "layouts/paginator",
locals: { total_items: @number_of_recommends, per_page: @limit, current_page: @page }
= render partial: "table", locals: { recommends: @recommends }
Может ли кто-нибудь помочь мне реорганизовать этот код?