는 오류를 발생시키는 내용의 예입니다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
나는 어쩌면 새로운 단어로 대체 포스트 모델에 뭔가를 넣어 싶습니다 "-"그 라인을 따라 또는 뭔가를하지만 난 잘 모르겠어요 어디서 시작하나요.
감사합니다.
내 솔루션 게시 ... 솔루션이 훨씬 간단합니다. –
둘 다 =). 그러나 아마도 reserved_words가있는 경우 유지해야합니다. FriendlyID의 새 버전은 단어를 추가/제거 할 수 있습니다. 이름에 ID를 추가하면 슬러그가 항상 고유하게 나타납니다 (손가락이 엇갈리게됩니다). 친근감있는 예약어는 행동 단어를 사용하지 않도록하는 데 좋습니다. 게시물을 가져 주셔서 감사합니다! –
이것은 조금 더 생각할 필요가 있습니다. friendly_id는'before' 유효성 검사를 사용하므로 슬러그가 생성 될 때 ID를 사용할 수 없습니다. 이렇게하려면 관찰자를 통해 ID를 업데이트하거나 단순히 사용자 정의 슬러그 메소드에서 ID를 사용하지 않는 방법으로 '이중 저장'을 수행 할 수 있습니다. –