Friendly_id 生成带有 ID 的 slug

发布于 2025-01-02 15:55:46 字数 347 浏览 1 评论 0原文

我正在尝试使用Friendly_id gem 生成格式为“#{id}-#{title}”的slug,

看起来Friendly_id 使用before_save,并且无法访问ID 属性。

有解决办法吗?

# Permalinks
#-----------------------------------------------------------------------------
extend FriendlyId
friendly_id :id_and_title, :use => :slugged

def id_and_title
  "#{id} #{title}"
end

I am trying to use the friendly_id gem to generate a slug in the format of "#{id}-#{title}"

It looks like friendly_id uses before_save, and won't have access to the ID attribute.

Is there a work around for this ?

# Permalinks
#-----------------------------------------------------------------------------
extend FriendlyId
friendly_id :id_and_title, :use => :slugged

def id_and_title
  "#{id} #{title}"
end

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

把梦留给海 2025-01-09 15:55:46

您可以在模型中重写 to_param ,以包含标题

class YourModel < ActiveRecord::Base
  def to_param
    "#{id} #{title}".parameterize
  end
end

This 应该具有您所追求的效果,而无需使用amilie_id,而不是使用Friendly_id。

Instead of using friendly_id for this, you could override to_param in your model, to include the title

class YourModel < ActiveRecord::Base
  def to_param
    "#{id} #{title}".parameterize
  end
end

This should have the effect you're after without having to use friendly_id.

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