使用FriendlyID时,请使用slug中的ID

时间:2014-09-25 00:33:24

标签: ruby-on-rails friendly-id

在我的模型中,我有以下内容:

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

我想知道是否有其他方法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

所以问题是在创建记录之前,friendly_id无法访问“id”。这里的问题是after_save导致无限重复,就像Michal所说,因为它调用了save。

您应该使用after_create。你只需要这样做一次。在记录的所有后续更新中,id应该可供friendly_id接收。

@ user3062913在这里有解决方案: Rails4 Friendly_id Unique Slug Formatting