Rails 5 mit freundlicher ID verwenden 5.1.0Freundlich ID nicht Slug Aktualisierung
Dem Versuch, zu verstehen, wie die Schnecke zu aktualisieren, wenn ein Post
Titel geändert wird.
In der Friendly ID-Dokumentation heißt es, dass Sie den Slug auf nil
aktualisieren müssen, bevor Sie Ihren aktualisierten Slug speichern können.
Beispiel
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"
In meinem Beitrag Modell habe ich should_generate_new_friendly_id?
in der Hoffnung setze sie die Schnecke aktualisieren, ohne manuell den Rohling zu nil
von der Konsole oder einem Web-Formular zu setzen.
# == 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
Ist es die Aufgabe der should_generate_new_friendly_id?
Methode, um die Schnecke zu aktualisieren, wenn es in Ihrem Modell definiert wird?
Nochmals vielen Dank.
können Sie bewegen die neueste Version von friendly_id? – neydroid
Sorry für den Tippfehler. Zuletzt mit 5.1.0. –