В 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
Другие вопросы по тегам