В Rails friendly_id, как использовать несколько атрибутов для слага?
Мне нужно создать слаг с несколькими атрибутами. Например, мне нужно title
и id
оба в каждой записи (не только в повторяющихся). Так это будет выглядеть так: hello-world-8943
, Как я могу это сделать?
3 ответа
Решение
В соответствии с docs
Вы можете определить свой собственный slug
структура следующим образом:
class MyModel < ActiveRecord::Base
friendly_id :uniqueslug, use: :slugged
def uniqueslug
"#{title}-#{id}"
end
end
Положить в вашу модель
def to_param
"#{title.parameterize}-#{id}"
end
Вы просто должны передать свой собственный слизень:
Это, например, генерирует случайную строку.
extend FriendlyId
friendly_id :random_slug, use: [:slugged, :finders]
def random_slug
self.slug = SecureRandom.hex(5)
end