ruby on rails - Rails Friendly_Id en Heroku, Heroku no actualiza babosas
ruby-on-rails friendly-id (3)
Y, por supuesto, siempre es algo tonto. Realmente no estoy seguro de cómo me perdí esto:
Este pedazo de código:
def should_generate_new_friendly_id?
new_record?
end
Que está ahí para evitar que se realicen nuevas babosas si se cambia el nombre, también se detuvo para actualizar las publicaciones anteriores.
Resolví el problema comentando esto, presionando, corriendo la consola Heroku y luego User.find_each(&:save)
funcionó bien, luego no comenté el código y volví a presionar a Heroku, y todo está muy bien.
¡Espero que esto pueda ayudar a alguien en el futuro!
Configuré la gema friendly_id , siguiendo a RailsCasts Screencast en ella. Localmente, esto funciona de manera brillante, lo instalé, ejecuté User.find_each(&:save)
que actualizó con éxito el campo slug en cada uno de los usuarios existentes y todo estaba bien.
Ahora he llevado esto a Heroku, y aunque funciona bien para los miembros nuevos que se agregan, Heroku no está actualizando la cuenta de usuarios para usuarios ya existentes.
Ejecutar heroku run console
y luego User.find_each(&:save)
simplemente no hace nada:
irb(main):001:0> User.find_each(&:save)
User Load (20.2ms) SELECT "users".* FROM "users" WHERE ("users"."id" >= 0) ORDER BY "users"."id" ASC LIMIT 1000
(23.6ms) BEGIN
(2.0ms) COMMIT
(13.6ms) BEGIN
(21.1ms) COMMIT
=> nil
El código relevante en models/user.rb
es:
extend FriendlyId
friendly_id :name, use: :slugged
def should_generate_new_friendly_id?
new_record?
end
Y he ejecutado todas las migraciones de base de datos en Heroku y salieron bien. Comprobé y la tabla de users
tiene un campo slug
, pero está vacía y no estoy seguro de dónde me estoy equivocando aquí. Si alguien se encuentra con esto antes, cualquier consejo sería muy apreciado. Gracias.
En mi caso fue historia:
friendly_id :text, use: [:slugged, :history]
Tenía que ser
friendly_id :text, use: :slugged
Para hacer que el heroku salve el trabajo ... entonces releí la parte de la historia
Pude solucionar este problema cambiando mi should_generate_new_friendly_id?
método de
def should_generate_new_friendly_id?
title_changed?
end
a
def should_generate_new_friendly_id?
slug.nil? || title_changed?
end