我已经设置了friendly_id gem,然后继续使用RailsCasts Screencast.本地工作非常出色,我安装了它,User.find_each(&:save)成功更新了每个现有用户的slug字段,一切都很好.
我现在已将其推送到Heroku,虽然它对于添加的任何新成员都可以正常工作,但Heroku并没有为已经存在的用户更新用户slug.
跑步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
Run Code Online (Sandbox Code Playgroud)
相关代码models/user.rb是:
extend FriendlyId
friendly_id :name, use: :slugged
def should_generate_new_friendly_id?
new_record?
end
Run Code Online (Sandbox Code Playgroud)
我已经在Heroku上运行了所有数据库迁移,并且它们运行良好.我查了一下,users桌上确实有一个slug字段,但它是空的,我不知道我在哪里出错了.如果有人碰巧遇到过这个问题,我们将非常感谢您的建议.谢谢.