嵌套资源的URL slu

时间:2016-05-21 11:39:55

标签: ruby-on-rails url seo friendly-url slug

在我的rails应用中,我的模型包括useritemuser_item

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

项目名称永远不会更改,用户也无法编辑。

用户的网址为/users/:id。一个项目的URL,对于SEO和用户友好的目的,将是/items/:name

但对user_item最好的是什么?一些可能性:

/users/:id/items/:name

/user_item/:id

/user_item/:item_name

/user_item/:id/:item_name

1 个答案:

答案 0 :(得分:0)

我会参考/items/:name/user_items/:id

您建议的其他选择可能无效,原因如下:

  

/用户/:ID /项目/:名称

=>只有登录用户才能访问user_item,因此/users/:id是多余的,否则,此类网址不会指向user_item

  

/ user_item /:id

=>这没关系,但应该更改为`/ user_items /:id',但这并不是你想要的友好

  

/ user_item /:ITEM_NAME

=>这没有意义,因为item_name可能有很多user_items(s)

  

/ user_item /:ID /:ITEM_NAME

=>这也没有意义,因为id足以识别user_item