Если у вас есть дополнительный столбец выше стандартных созданных_ и обновленных_ответов, вы можете использовать его для создания friendly_id.
Он не будет работать со стандартным столбцом create_at, так как он заполняется после обратного вызова friendly_id, означающего, что запись на самом деле не создана.
Если у вас есть столбец, скажем ... report_date
с типом даты и времени, тогда вы можете сделать это ...
# app/models/report.rb ## using friendly_id 3.x
class Report < ActiveRecord::Base
# I recommend using a cache column as well.
has_friendly_id :report_slug, :use_slug => true, :cache_column => 'cached_slug'
before_create :set_report_date
def set_report_date
self.report_date = Time.now
end
def report_slug
report_date.strftime('%d-%m-%Y')
end
end
Или как в FriendlyId 4.x
class Home < ActiveRecord::Base
extend FriendlyId
friendly_id :report_slug, :use => :sluggable
before_create :set_report_date
def set_report_date
self.report_date = Time.now
end
def report_slug
report_date.strftime('%d-%m-%Y')
end
end
Все, что вам нужно, это строковый столбец с именем slug в вашей модели, если вы используете 4.x
Используя before_create и метод set_report_date
, вы можете убедиться, что значение report_date
заполняется только один раз (при создании).
Некоторые опции для strftime
можно найти здесь: https://gist.github.com/1965714
Надеюсь, это поможет.