2016-05-21 21 views
0

In meiner Rails-App gehören zu meinen Modellen user, item und user_item.URL-Slugs für verschachtelte Ressourcen

user.rb

has_many :user_items 
has_many :items, through: :user_items 

item.rb

has_many :user_items 
has_many :users, -> { uniq }, through: :user_items 
belongs_to :user 

user_item.rb

belongs_to :user 
belongs_to :item 

Namen für Artikel sho Änderungen bleiben vorbehalten und können nicht von Benutzern bearbeitet werden.

Eine URL für einen Benutzer wäre /users/:id. Eine URL für einen Artikel wäre /items/:name für SEO und benutzerfreundliche Zwecke.

Aber was wäre das Beste für user_item? Einige Möglichkeiten:

/users/:id/items/:name

/user_item/:id

/user_item/:item_name

/user_item/:id/:item_name

Antwort

0

I /items/:name/user_items/:id

Andere Produkte beziehen würden Sie vorgeschlagen ist vielleicht ungültig, hier ist der Grund:

/users /: id/items /: Name

=> Nur angemeldete Benutzer die user_item zugreifen können, so ist /users/:id überflüssig, sonst ist diese Art von URL verweist nicht auf user_item

/user_item /: id

=> Das ist in Ordnung, sollte aber auf `/ user_items/geändert werden: id‘, aber das ist, wie Sie nicht freundlich w

ant

/user_item /: item_name

=> Dies ist nicht sinnvoll, da ein item_name haben viele user_items (s)

/user_item /: id /: item_name

=> Das macht keinen Sinn, auch, weil id genug ist, einezu identifizieren

Verwandte Themen