簡體   English   中英

子類別和類別rails friendly_id

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM