Friendly_Id和保留字 - 如何替换保留字?

Mar*_*tto 5 ruby validation ruby-on-rails friendly-id

以下是导致错误的原因示例:

ruby-1.9.2-p290 :004 > Post.new(title: "new").save!
   (0.3ms)  BEGIN
  post Load (0.3ms)  SELECT `posts`.* FROM `posts` WHERE (`slug` = 'new' OR `slug` LIKE 'new--%') ORDER BY LENGTH(`slug`) DESC, `slug` DESC LIMIT 1
   (0.3ms)  SELECT 1 FROM `posts` WHERE `posts`.`lsi_post_id` = BINARY '' LIMIT 1
   (0.1ms)  ROLLBACK
ActiveRecord::RecordInvalid: Validation failed: Friendly is reserved
Run Code Online (Sandbox Code Playgroud)

我想在Post模型中添加一些东西,可能会用" - "替换一个新单词,或者沿着那些行替换,但我不知道从哪里开始.

谢谢!

Dav*_*ler 3

使用daemonsySizzlePants的答案,我想出了这个,它悄悄地将“new”重命名为“new2”,将“edit”重命名为“edit2”,并保留其他所有内容与以前一样:

class Page < ActiveRecord::Base

  extend FriendlyId
  friendly_id :friendly_id_title, use: :slugged
  def friendly_id_title
    case title.parameterize
    when 'new' then 'new2'
    when 'edit' then 'edit2'
    else title
    end
  end

end
Run Code Online (Sandbox Code Playgroud)