大ブログ更新祭

本日は大ブログ更新祭です。やっていき場にいる方も、いない方も、ブログを更新していきましょう。

Rails と gem のバージョンを更新

このブログはRailsを使って自作しているものですので、まずはライブラリのアップデートをしました。 gem 'rails', '5.0.0.1' から gem 'rails', '5.1.3'

vim Gemfile
bundle update
rails app:update

rails app:update でいろいろファイル更新するか聞かれますが、あまり考えずに Y を押して上書きしていきます。一部コンパイルすべき assets が指定されていないなどのエラーが出ますが、指定などをすると問題なく起動しました。テストはありません。

Capistrano でデプロイできるようになっているので、bundle exec cap production deploy で更新。エラー画面が発生しました。

I, [2017-08-26T15:12:48.802865 #21080]  INFO -- : [17e0ca25-9ac1-4426-955f-a86b3aa929a4] Completed 500 Internal Server Error in 14ms
F, [2017-08-26T15:12:48.805613 #21080] FATAL -- : [17e0ca25-9ac1-4426-955f-a86b3aa929a4]
F, [2017-08-26T15:12:48.805707 #21080] FATAL -- : [17e0ca25-9ac1-4426-955f-a86b3aa929a4] JSON::ParserError (822: unexpected token at '^D^H{     I"^Osession_id^F:^FETI"%xxxxxxxxxxxxxxxxx^F;'):
F, [2017-08-26T15:12:48.805772 #21080] FATAL -- : [17e0ca25-9ac1-4426-955f-a86b3aa929a4]
F, [2017-08-26T15:12:48.805836 #21080] FATAL -- : [17e0ca25-9ac1-4426-955f-a86b3aa929a4] /path/to/ruby/json/common.rb:156:in `parse'

cookie をパースするところで落ちているようです。Chrome のゲストモードなどで開くと問題ありません。どうやら、rails app:update した際に考えずに上書きした config/initialize/cookies_serializer.rb が書き換わってしまったのが原因のようです。cookies_serializer が :marshal から :json に変わっていたので、:hybrid に変更します。

Rails.application.config.action_dispatch.cookies_serializer = :hybrid

Rails 4.1 以前のシリアライザは marshal だったようですが、今は json になってるらしい。hybrid にするとどっちでもパースできる。この自作ブログは3年くらい前から動いてるみたい。

餃子

焼かれていきますので、暇な方は下赤塚へ

Inoreader で購読するボタンを設置

Inoreaderで購読するボタン

RSSリーダーは Inoreader を使っています。 Feedly に流れた時期もありましたが、あれは購読アイテム数制限が厳しい。無料で無限に購読できる Inoreader に戻ってきました。同じように Inoreader 使っている人はそこそこいるように思いますので、購読ボタンを付けました。

<a href="http://www.inoreader.com/feed/https%3A%2F%2Fblog.kksg.net%2Fposts%2Ffeed.rss" target="_blank" rel="nofollow">
  <i class="fa fa-feed" />
  Follow on Inoreader
</a>

ソースはこんな感じ。あとは良い感じのCSSを宛てて綺麗にします。 購読ボタンは単純なリンクでいいみたい。 http://www.inoreader.com/feed/{URLエンコードしたRSSのURL} という形式にリンクを貼れば購読ボタンになります。

引き続き

ブログ更新したら追記していきます。