近&況

Recent Posts
Edit

ブログを作る(12) カテゴリ機能を付けた

2017-05-16
Tech

記事にカテゴリを付けられるようにした。前からやりたかったものの一つである。ソースはこのへんだけど、ファイル構成の見直しも同時にやったのでこれだけ見てもよく分からないな。

同カテゴリの記事を探しやすくするというのが第一の目的だけど、もう一つの変更点として、日記(カテゴリDiary)を省いたAtomフィードを追加で提供するようにした。これを期にもうちょっと雑多な内容も書くようになるかもしれない。ならないかもしれないけど。

やったこと

既存の記事にカテゴリを振る

ここは半手作業でやった。DBを手元にダウンロードして、rake consoleでirbを立ち上げる。以下のようにすると適当な形式のテキストファイルができるので、エディタで開いてカテゴリがTechじゃないやつを編集する。

> require 'pp'
> File.write("cats.txt", Post.all.map{|post| [post.id, "Tech", post.title]}.pretty_inspect)

終わったら以下のようにするとカテゴリが設定される。

> ary = eval(File.read("cats.txt"))
> ary.each{|id, cat_name, _| cat = Category.find_or_create_by!(name: cat_name); Post.find(id).update!(category: cat)}