在 Rails 中实现 "complex" url 的最佳实践



我正在开发一个企业应用程序,并希望使用具有长/非琐碎id的url,而不是常规的增量id。

例如,我想使用http://mysite.com/users/23lkfjls0934或http://mysite.com/companies/23lkfjls0934而不是http://mysite.com/users/3或http://mysite.com/companies/company-name

要实现这个结果需要遵循哪些步骤(迁移、关联、模型…),在构建这个特性时需要记住哪些重要的事情?

您可以使用friendly_id gem来做相反的事情:使url尽可能不友好:)

在表中添加一个新字段,它将存储长键。然后像这样使用:

class User < ActiveRecord::Base
  extend FriendlyId
  friendly_id :name, use: :long_random_key
end

你可以在before_create钩子中初始化这个长键,例如

class User < ActiveRecord::Base
  extend FriendlyId
  friendly_id :name, use: :long_random_key
  before_create :generate_long_random_key
  private
  def generate_long_random_key
    self.long_random_key = SecureRandom.hex(32)
    # TODO: Make sure it's unique
  end
end

相关内容

  • 没有找到相关文章

最新更新