【发布时间】:2014-09-10 10:13:57
【问题描述】:
好的,所以我正在制作一个friendly_id,它可以让我有效地扩展它。这是我到目前为止所得到的。如果您有匹配的名称,它的作用基本上是在计数上添加 +1。因此,如果您是第二个注册为 John doe 的人,您的 url 将是 /john-doe-1。
extend FriendlyId
friendly_id :name_and_maybe_count, use: [:slugged, :history]
def name_and_maybe_count
number = User.where(name: name).count
return name if number == 0
return "#{name}-#{number}"
end
但是,这段代码仍然给我带来了一些问题。
- 如果我创建了一个名为 John Doe 的用户。然后注册另一个名为 John Doe 的用户,slug 将是 /john-doe-UUID。如果我注册第三个用户,那么它将收到 slug john-doe-1。
- 如果我有两个用户。一个先用名字注册的。说胡安·巴勃罗。然后他将自己的名字改成“Rodrigo”,然后又改回“Juan Pablo”。他的新名字将是“juan-pablo-1-UUID”。
我知道这对你们大多数人来说都是小问题,但这是我需要解决的问题!
【问题讨论】: