2016-11-26 6 views
0

私は自分のブログの各記事に関連する単一のメイン画像を持っています。記事IDや記事URLから推測できるので、メイン画像の名前をデータベースに格納する必要はありません。記事は、確かに、 "my-article-about-something"のようなidとpretty urlを持っています。 「#{article.id} .jpg」や「#{article.friendly_url} .jpg」のように、各記事のメイン写真の名前を付ける方がいいでしょうか。どちらも動作しますが、たとえば、新しいサーバーでデータベースを復元する必要がある場合はどうすればよいでしょうか? IDが失われる可能性があります。他にも欠点があるかもしれません。あなたは何を推薦しますか?記事のメイン画像ファイルに名前を付けるにはどうすればいいですか?

+0

それは本当に好みの問題です:イメージ名が新しい列tokenを追加し、コードあなたの記事のモデルを追加置く:token-:friendly_url

移行コード

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

になります。しかし、あなたの場合は、記事IDとfriendly_urlの両方を使用してみませんか?このようにして、画像のファイル名には両方があります。あなたがIDを失った場合は、friendly_url(見た目ではその記事のタイトルです)を持ち、その逆もあります。タイトルを紛失した場合はIDを持っています。 – heyitsjhu

答えて

0

アーティクルごとに固有のトークンを生成し、イメージの名前で使用できます。このトークンはデータベースを移動した後は決して変更されず、すべてのイメージは一意になります。

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 
+0

**記事IDまたは記事URL ** – Kurama

+0

のいずれかから推測できるので、メイン画像の名前をデータベースに保存する必要はありません。Поуважительнее、никтонепредлагаетсохранятьимякартинки。トークンのトークンを作成するには、トークンのトークンを使用する必要があります。 –

+0

idизменится? – Kurama

関連する問題