在我的模型中,卖家有很多商品。
卖家可以通过它的 slug 访问,而不是它的 ID:
配置/路由.rb
get "/:slug", to: "sellers#show"
这工作正常。
但是,我希望每个项目 URL 根据格式包含其父 slug /:slug/:id
,例如/piano_man/5
或/joe_schmoe/344
。
以下作品:
配置/路由.rb
get '/:slug/:id', to: 'items#show'
应用程序/控制器/items_controller.rb
def show
@item = Item.find(params[:id])
end
但它(显然)不会改变默认的 Item URL 行为,因为这段代码只是忽略了 :slug 部分。
如何使默认 URL<%= link_to item %>
指向/:slug/:id
而不是/items/:id
?
请记住,“slug”来自父模型Seller
,但 ID 来自 Item 本身。