我想将friendly_id与id中的日期时间一起使用: friendly_id:date
有没有办法配置friendly_id(here:date)参数的格式来改变显示? (这里比“2010-05-09 00:00:00 UTC”更好)
答案 0 :(得分:1)
如果您在标准的created_at和updated_at上方有一个额外的列,则可以使用它来生成friendly_id。
它不能与标准的created_at列一起使用,因为这会在friendly_id回调之后填充,这意味着实际上没有创建记录。
如果你确实有一个列说{... 1}}类型的日期时间,那么你可以这样做......
report_date
或者在FriendlyId 4.x
中这样# 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
如果使用4.x
,您只需要在模型上使用名为slug的字符串列通过使用before_create和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
方法,您可以确保仅在创建时填充set_report_date
值。
report_date
的一些选项可在此处找到:https://gist.github.com/1965714
希望有所帮助。