Ste*_*nou 5 ruby-on-rails friendly-id
我正在使用friendly_id gem.在portfolio.rb中我放了这两行:
extend FriendlyId
friendly_id :title, use: :slugged
Run Code Online (Sandbox Code Playgroud)
如你所见,我也在使用slug选项.当我创建一个标题为"example"的项目时,它可以找到并且我可以找到该项目mysite.com/projects/example.现在,如果我创建一个具有相同标题的第二个,我会像这样得到一个标题:mysite.com/projects/example-74b6c506-5c61-41a3-8b77-a261e3fab5d3.我真的不喜欢这个头衔.我希望有一个更友好的标题example-2.
在这个问题上,RSB(用户)告诉我它的friendly_id导致了这个问题.我想知道是否有办法创造一个更友好的.起初我想到"手动"检查是否存在相同的标题(在while循环中)并使用example-2或example-3或... example-N分配另一个标题.
但是我需要做那样的事情还是我错过了什么?有没有更简单的方法来做这样的事情?
查看文档以获取最新版本的friendly_id:
一种新的"候选"功能,可以轻松设置可用于唯一区分记录的备用段列表,而不是附加序列.
直接来自文档的示例:
class Restaurant < ActiveRecord::Base
extend FriendlyId
friendly_id :slug_candidates, use: :slugged
# Try building a slug based on the following fields in
# increasing order of specificity.
def slug_candidates
[
:name,
[:name, :city],
[:name, :street, :city],
[:name, :street_number, :street, :city]
]
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1164 次 |
| 最近记录: |