[英]subcategories and categories rails friendly_id
Cant似乎可以使用friendly_id與我的類別和子類別一起使用。 我也使用了friendly_id gem。
這是我的類別控制器
class CategoriesController < ApplicationController
def index
@categories = Category.all
@oval = @categories[0]
@atv = @categories[1]
@boat = @categories[2]
@fab = @categories[3]
@chassis = @categories[4]
@classic = @categories[5]
@dirt = @categories[6]
@dragracing = @categories[7]
@audio = @categories[8]
@engine = @categories[9]
@tune = @categories[10]
@enginecom = @categories[11]
@exhaust = @categories[12]
@golfcart = @categories[13]
@hotrod = @categories[14]
@karts = @categories[15]
@modern = @categories[16]
@motorcycle = @categories[17]
@muscle = @categories[18]
@offroad = @categories[19]
@racingitem = @categories[20]
@accessories = @categories[21]
@position = @categories[22]
@racingeq = @categories[23]
@roadracing = @categories[24]
@safety = @categories[25]
@snowmobile = @categories[26]
@tw = @categories[27]
@tools = @categories[28]
@rvs = @categories[29]
@tractor = @categories[30]
@trailer = @categories[31]
@transmission = @categories[32]
@truckpart = @categories[33]
@drift = @categories[34]
@import = @categories[35]
end
例如我的網址現在是localhost:3000 / categories / 4 / subcategories / 27
我希望它成為
本地主機:3000 /分類/直線競速賽/小類/ PRO-MOD
這是我的路線
Rails.application.routes.draw do
resources :channels
resources :discussions do
resources :replies
end
resources :comments
resources :blogs
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
mount ActionCable.server => '/cable'
get 'users/show'
get 'about', to: 'pages#about'
get 'directory', to: 'pages#directory'
get 'contact', to: 'pages#contact'
get 'privacy', to: 'pages#privacy'
get 'faq', to: 'pages#faq'
get '/myads', to: 'posts#myads'
get 'partner', to: 'pages#partner'
get '/sitemap' => 'sitemap#index', defaults: {format: "xml"}
root 'categories#index'
devise_for :users, path: '', path_names: { sign_in: 'login', sign_out: 'logout', sign_up: 'register' }, controllers: { registrations: "registrations"}
resources :users
resources :mes
resources :pricing, only:[:index]
resources :posts
resource :subscription
resources :categories do
resources :subcategories
end
end
您嘗試使用的路線的描述是:
# /categories/:category_id/subcategories/:id
這意味着您發送的代替:category_id
都將在您的控制器中以params[:category_id]
,與:id
=> params[:id]
。
因此,如果您發送/categories/dragracing/subcategories/pro-mod
,則您的參數將是:
{ 'category_id' => 'dragracing', 'id' => 'pro-mod' }
如您當前的代碼所示,此端點將被路由到subcategories#show
。
# category_subcategory GET /categories/:category_id/subcategories/:id(.:format) subcategories#show
因此,您需要一個控制器。 您無需在URL中發送id
或數字,只需正確處理即可:
class SubcategoriesController < ApplicationController
def show
@category = Category.friendly.find params[:category_id] # dragracing
@subcategory = Subcategory.friendly.find params[:id] # pro-mod
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.