本日は大ブログ更新祭です。やっていき場にいる方も、いない方も、ブログを更新していきましょう。
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
で更新。エラー画面が発生しました。
ブログ更新失敗して開けなくなった #やっていき場 #大ブログ更新祭 pic.twitter.com/zfWJb2n3Xw
— kosuge (@9m) August 26, 2017
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年くらい前から動いてるみたい。
餃子
めしにしましょう #やっていき場 pic.twitter.com/JHj3ZAgn5Y
— kosuge (@9m) August 26, 2017
焼かれていきますので、暇な方は下赤塚へ
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}
という形式にリンクを貼れば購読ボタンになります。
引き続き
ブログ更新したら追記していきます。