【发布时间】:2013-10-23 21:56:17
【问题描述】:
在我的模型中,卖家有很多商品。
卖家可以通过它的 slug 而不是它的 ID 访问:
config/routes.rb
get "/:slug", to: "sellers#show"
这很好用。
但是,我希望每个项目 URL 都根据 /:slug/:id 的格式包含其父 slug,例如/piano_man/5 或 /joe_schmoe/344。
以下作品:
config/routes.rb
get '/:slug/:id', to: 'items#show'
app/controllers/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 来自项目本身。
【问题讨论】:
标签: ruby-on-rails routes