digest ライブラリを用いる
require "digest/md5"
def str_to_color_code(str)
"#" + Digest::MD5.hexdigest(str)[0..5]
end
scivolaさんからハッシュライブラリを用いたより良い方法を教えてもらいました。ハッシュ関数から先頭6文字を取っています。是非、使ってみてください!
きっかけ
railsで簡単なシステムを作っている際、ユーザごとにプロフィール画像がないため、全体で参加できるコメント欄があまりにも質素で真っ黒、誰が喋っているのか分からない状態になったため、ユーザごとのテーマカラーを上記の関数で実装した。
決まった文字列には決まったカラーコードを返すのでユーザ名から生成し、CSSに適用させるなどすると、簡単なアプリでもなかなか華やかに見えるのでおすすめです。