我正在尝试使用友好 ID 创建更多自定义 url。但是,我想用于 slug 的列仍然是一个数字。我不想只为 slug 创建一个单独的列,因为它是相同的。
我有很多属于拍卖的。
拍卖有很多拍品(待售物品)。
A Lot有lot_number
,这是Auction独有的。不过,它在整个表格中并不是唯一的。这基本上只是在每次拍卖中订购批次的一种方式。
我的 URL 看起来像:/auctions/1/lots/21 (/auctions/:auction_id/lots/:id)
我希望它们是:/auctions/1/lots/1 (/auctions/:auction_id/lots/:lot_number )
我将以下内容添加到lot.rb:
extend FriendlyId
friendly_id :lot_number
它几乎可以工作。它向我显示了一个批号正确但拍卖错误的批次。
我在 Friendly ID 文档中阅读了有关范围的信息,这听起来很完美。我可以将拍卖范围限定在拍卖范围内……
所以我尝试了:
extend FriendlyId
friendly_id :lot_number, :use => :scoped, :scope => :auction_id
现在我看到以下错误:
SQLite3::SQLException: no such column: lots.slug: SELECT "lots".* FROM "lots" WHERE "lots"."slug" = '1' LIMIT 1
为什么是 SQL WHERE lots.slug = 1
?不应该WHERE lots.auction_id = 1
吗?
我使用了错误的语法吗?不知道我哪里出错了。
任何帮助,将不胜感激。谢谢。