RailsCasts Screencastに従って、 Friendly_id gemをセットアップしました。これはローカルで見事に機能し、インストールして実行し、既存の各ユーザーのスラッグフィールドを正常に更新しましたが、すべて問題ありませんでした。User.find_each(&:save)
これを Heroku にプッシュしました。追加された新しいメンバーには問題なく機能しますが、Heroku は既存のユーザーのユーザー スラッグを更新しません。
実行heroku run console
してからUser.find_each(&:save)
何もしません:
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
関連するコードmodels/user.rb
は次のとおりです。
extend FriendlyId
friendly_id :name, use: :slugged
def should_generate_new_friendly_id?
new_record?
end
そして、Heroku ですべての DB 移行を実行しましたが、うまくいきました。チェックしたところ、users
テーブルにはslug
フィールドがありますが、空で、どこが間違っているのかわかりません。誰かがたまたまこれに遭遇したことがある場合は、アドバイスをいただければ幸いです。ありがとうございました。