friendly_id генерировать слаг с идентификатором

Я пытаюсь использовать гем friendly_id для создания слага в формате "#{id}-#{title}"

Похоже, что friendly_id использует before_save и не будет иметь доступа к атрибуту ID.

Есть ли обходной путь для этого?

# Permalinks
#-----------------------------------------------------------------------------
extend FriendlyId
friendly_id :id_and_title, :use => :slugged

def id_and_title
  "#{id} #{title}"
end

person Andrew Cetinic    schedule 06.02.2012    source источник
comment
Удалось решить эту проблему с помощью friendly_id?   -  person Oscar Mederos    schedule 25.09.2014


Ответы (1)


Вместо того, чтобы использовать для этого friendly_id, вы можете переопределить to_param в своей модели, чтобы включить заголовок

class YourModel < ActiveRecord::Base
  def to_param
    "#{id} #{title}".parameterize
  end
end

Это должно иметь эффект, который вам нужен, без необходимости использовать friendly_id.

person alol    schedule 07.02.2012
comment
В итоге я остановился на этом подходе. При таком подходе вы просто потеряете историю слагов. Спасибо - person Andrew Cetinic; 08.02.2012
comment
Это ответ на этот очень конкретный вопрос... если вы решите использовать идентификатор в конце, это не сработает, например #{title} #{id}.parameterize - person Oscar Mederos; 25.09.2014