【发布时间】:2011-09-01 19:56:45
【问题描述】:
我使用friendly_id 4.0.0.beta8 并且喜欢生成使用slug 的URL,但仍然包含模型ID。似乎friendly_id 会在_validation 之前生成slugs。但是,此时(保存前)当然没有可用的模型 ID,因此 friendly_id 会创建没有 id 的 slug。
我如何确保新记录在初始保存后会有带有 id 的 slug?
【问题讨论】:
我使用friendly_id 4.0.0.beta8 并且喜欢生成使用slug 的URL,但仍然包含模型ID。似乎friendly_id 会在_validation 之前生成slugs。但是,此时(保存前)当然没有可用的模型 ID,因此 friendly_id 会创建没有 id 的 slug。
我如何确保新记录在初始保存后会有带有 id 的 slug?
【问题讨论】:
我是FriendlyId的作者。
FriendlyId 试图解决的问题是允许文本 id根本不存在数字 id。
因此,如果您只想在 slug 中包含模型 ID,您可能只想避免增加的复杂性,并且根本不为该模型使用 FriendlyId;你也许可以覆盖 to_param:
def to_param
"#{id}-{title.parameterize}"
end
【讨论】:
您也可以在控制器中保存两次。该 ID 将第二次出现,因此它将更新 slug。
【讨论】: