【发布时间】:2014-12-22 10:32:06
【问题描述】:
我需要生成具有多个属性的 slug。例如,我在每条记录中都需要title 和id(不仅在具有重复标题的记录中)。所以它看起来像这样:hello-world-8943。我该怎么做?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 friendly-id
我需要生成具有多个属性的 slug。例如,我在每条记录中都需要title 和id(不仅在具有重复标题的记录中)。所以它看起来像这样:hello-world-8943。我该怎么做?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 friendly-id
根据docs,可以定义自己的slug结构如下:
class MyModel < ActiveRecord::Base
friendly_id :uniqueslug, use: :slugged
def uniqueslug
"#{title}-#{id}"
end
end
【讨论】:
friendly_id :uniqueslug, use: :slugged,使用 slugged
放入你的模型
def to_param
"#{title.parameterize}-#{id}"
end
【讨论】:
你只需要传递你自己的 slug:
例如生成一个随机字符串。
extend FriendlyId
friendly_id :random_slug, use: [:slugged, :finders]
def random_slug
self.slug = SecureRandom.hex(5)
end
【讨论】: