Rails Friendly_id:Slug 未正确生成

Posted

技术标签:

【中文标题】Rails Friendly_id:Slug 未正确生成【英文标题】:Rails Friendly_id: Slug isn't generated properly 【发布时间】:2017-01-25 11:36:08 【问题描述】:

我正在尝试使用 FriendlyId gem 制作我的自定义 slug,例如:

extend FriendlyId
friendly_id :slug_candidates, :use => [:slugged, :finders]

def slug_candidates
   id = rand(100..200)
   x = ...
   y = ...
   return "#x-#y-#id"
end

在添加 slug 列之前,当我在 rails console.friendly_id 中测试它时,会以 x-y-id 的格式正确显示 slug。问题是当我添加一个 slug 列并尝试创建新实例时,只有最后一部分被保存(只有一个随机数)作为 slug! slug 中没有 x 和 y 的值。这里有什么问题,我该如何解决?

【问题讨论】:

【参考方案1】:

你可以尝试做这样的事情吗:

def slug_candidates
   id = rand(100..200)
   x = ...
   y = ...
  [ "#x-#y-#id" ]
end

def should_generate_new_friendly_id?
  true
end

【讨论】:

以上是关于Rails Friendly_id:Slug 未正确生成的主要内容,如果未能解决你的问题,请参考以下文章

Rails Friendly_id:Slug 未正确生成

Rails gem“friendly_id”:如何在创建对象之前获得 slug 的实时预览

Friendly_id 不为旧记录创建 slug

Rails 4中友好id gem的随机slug url

如何使用 friendly_id 从 URL 中删除特定单词 |铁轨上的红宝石

friendly_id:可选择更新 slug