如何更好地为文章的主图像文件命名?

时间:2016-11-26 03:58:13

标签: ruby-on-rails ruby ruby-on-rails-4

我的博客上的每篇文章都有一个主要图片。没有必要在数据库中存储主图片的名称,因为它可能来自文章ID或文章URL。事实上,文章有一个id和漂亮的URL,例如“my-article-about-something”。我想知道,为每篇文章命名主要图片的更好方法是什么:“#{article.id} .jpg”或“#{article.friendly_url} .jpg”。它们都可以工作,但是,例如,如果我必须在新服务器上恢复数据库呢? ID可能会丢失。或许还有其他缺点。你会推荐什么?

1 个答案:

答案 0 :(得分:0)

您可以为每篇文章生成唯一标记,并以图像的名称使用它。移动数据库后,此令牌将永远不会更改,并且您的所有图像都将是唯一的。图片名称为:token-:friendly_url

迁移代码

add_column(:articles, :token, :string, limit: 20)
add_index(:articles, :token, unique: true)

添加新列token并添加您的文章模型代码:

before_validation :generate_token, on: :create

private

def generate_token
  self.token = SecureRandom::hex(6)
  generate_token if self.class.exists?(token: self.token)
end