我想在 id 中使用friendly_id 和日期时间:friendly_id :date
有没有办法配置friendly_id参数的格式(这里:日期)来改变显示?(这里比“2010-05-09 00:00:00 UTC”更好)
我想在 id 中使用friendly_id 和日期时间:friendly_id :date
有没有办法配置friendly_id参数的格式(这里:日期)来改变显示?(这里比“2010-05-09 00:00:00 UTC”更好)
如果您在标准 created_at 和 updated_at 之上有一个额外的列,您可以使用它来制作friendly_id。
它不适用于标准 created_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
如果使用 4.x,您只需要在模型上添加一个名为 slug 的字符串列
通过使用 before_create 和该set_report_date
方法,您可以确保该report_date
值仅填充一次(在创建时)。
strftime
可以在这里找到一些选项: https ://gist.github.com/1965714
希望有帮助。