在我的模型中,我有以下内容:
friendly_id :id_and_title, use: [:slugged, :finders]
...
def id_and_title
"#{self.id}-#{self.title}"[0,100]
end
但是,在创建新记录时,未在slug字段中使用ID
。
我目前正在做的是:
after_save :regenerate_slug
...
def regenerate_slug
self.slug = nil
self.save
end
我想知道是否有其他方法可以做到这一点?
答案 0 :(得分:0)
所以问题是在创建记录之前,friendly_id无法访问“id”。这里的问题是after_save导致无限重复,就像Michal所说,因为它调用了save。
您应该使用after_create。你只需要这样做一次。在记录的所有后续更新中,id应该可供friendly_id接收。
@ user3062913在这里有解决方案: Rails4 Friendly_id Unique Slug Formatting