Friendly_id 和新记录
我使用的是Friendly_id 4.0.0.beta8,并且喜欢生成使用slug的URL,但仍然包含模型ID。看起来Friendly_id 在_validation 之前生成了slugs。然而,此时(保存之前)当然没有可用的模型 id,因此Friendly_id 创建没有 id 的 slugs。
我如何确保新记录在初始保存后将包含带有 id 的数据段?
I'm using friendly_id 4.0.0.beta8 and like to generate URLs that make use of slug, but still contain the model id. It seems like friendly_id generates slugs before_validation. However, at this time (before save) there is of course no model id available and so friendly_id creates slugs without id.
How can I make sure, that new records will have slugs with id after initial save?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我是FriendlyId 的作者。
FriendlyId 试图解决的问题是允许文本 id 完全不存在数字 id。
因此,如果您只想在 slug 中包含模型 id,您可能只想避免增加复杂性,并且根本不对该模型使用FriendlyId;您也许可以覆盖 to_param:
I'm the author of FriendlyId.
The problem that FriendlyId tries to solve is allowing text ids without the numeric id present at all.
So if you're just going to have the model id in the slug, you might just want to avoid the added complexity and not use FriendlyId at all for that model; you may be able to just override to_param:
您也可以在控制器中保存两次。 ID 将第二次出现,因此它会更新 slug。
You could also just save twice in the controller. The ID will be there the second time so it'll update the slug.