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模型中添加一些东西,可能会用" - "替换一个新单词,或者沿着那些行替换,但我不知道从哪里开始.
谢谢!
使用daemonsy和SizzlePants的答案,我想出了这个,它悄悄地将“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)