Использование Rails 5 с животными ID 5.1.0Дружественные ID не обновляя слизняка
Пытаясь понять, как обновить слизняка, когда название Post
изменяется.
В документации по доброжелательному удостоверению личности говорится, что вам необходимо обновить слизню до nil
, прежде чем вы сможете сохранить обновленный слизень.
Пример
post = Post.first
post.title # "My first post"
post.slug = "my-first=post"
post.title = "My newer first post"
post.save!
post.slug # "my-first=post"
# Setting to nil first
post.slug = nil
post.title = "My newer first post"
post.save!
post.slug # "my-newer-first-post"
В моей модели Post Я поставил should_generate_new_friendly_id?
в надежде, что будет обновлять слизняк без установки вручную слизняка в nil
из консоли или веб-формы.
# == Schema Information
#
# Table name: post
#
# id :integer not null, primary key
# title :string default(""), not null
# body :text default(""), not null
# created_at :datetime not null
# updated_at :datetime not null
# slug :string
#
# Indexes
#
# index_posts_on_slug (slug) UNIQUE
#
class Post < ApplicationRecord
extend FriendlyId
friendly_id :title, use: :history
private
def should_generate_new_friendly_id?
title_changed? || super
end
end
ли работа метода should_generate_new_friendly_id?
обновления слизняка, если это определено в вашей модели?
Еще раз спасибо.
вы можете перейти к последняя версия friendly_id? – neydroid
Извините за опечатку. Использование 5.1.0. –