Friendly_id 和新记录

发布于 2024-12-02 07:37:07 字数 193 浏览 3 评论 0原文

我使用的是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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

断舍离 2024-12-09 07:37:07

我是FriendlyId 的作者。

FriendlyId 试图解决的问题是允许文本 id 完全不存在数字 id。

因此,如果您只想在 slug 中包含模型 id,您可能只想避免增加复杂性,并且根本不对该模型使用FriendlyId;您也许可以覆盖 to_param:

def to_param
  "#{id}-{title.parameterize}"
end

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:

def to_param
  "#{id}-{title.parameterize}"
end
笛声青案梦长安 2024-12-09 07:37:07

您也可以在控制器中保存两次。 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文