2016-07-19 7 views
1

auf einer Rails-Anwendung arbeiten, wo ich habe zwei Modelle products und category und meine Kategorie has_many :products und meine Produkte belongs_to a category so dass ich wie mein Weg zur Einrichtung in die Lage sein will, wo die URL aussehen wird http://example.com/products/categoryname/product-name. Wie kann ich das erreichen? in meinen Routen habe ichwie mit Schienen-Routing zu tun

resources :products do 
    resources categories 
    get ':name', to: 'category#index', as: :category 
end 

was mache ich hier falsch?

+0

ich fand es einfacher, durch den Einsatz von Schnecken hier zu erreichen, ist ein guter Artikel auf es http: // blog.teamtreehouse.com/creating-vanity-urls-in-rails –

+0

Ihr Code in 'routes.rb' Datei scheint Sie versuchen, einige findige Routen zu generieren, aber Ihre Beispiel-URL zeigt so etwas wie nicht-einfallsreich! Bitte aktualisieren Sie Ihre Frage mit einer gültigen Beispiel-URL. –

Antwort

0

Vielleicht möchten Sie dies Ihre routes.rb

resources :products 
get "/products/:category_name/:product_name/" => "products#index" 
+0

bekommen einen sysntax Fehler dafür –

0

in tun Das ist schwieriger, als Sie denken, wie der URL-Link ‚normales‘ Verhalten nicht folgt.

Sie müssen Ihre Routen nicht in der routes.rb-Datei verschachteln. Das Erklären der Beziehungen wird ausreichend sein. Also habe einfach;

resources :products 
resources :categories 

Sind Sie gegen zu haben 'category_id' versus 'category_name' ... das wäre einfacher.

Andernfalls müssen Sie einen 'Slug' für eine URL erstellen. Und erzähle Rails von den Nacktschnecken etc .. es kann chaotisch werden.

-1

für jeden, der ein Problem wie folgt hat, hier ist, wie ich mein Problem löse. ich die freundliche id gem verwendet dann auf meine Routen habe ich es wie

resources :products

get "/products/:id/:id/" => "products#show"