ボクココ

個人開発に関するテックブログ

自作ブログなら Publify が便利

今回は会社のブログを導入するために、以下の条件で色々探してみた。

  • 広告が無い
  • お金がかからない
  • カスタマイズできる
  • Ruby on Rails でできてる

4つ目さえなければ WordPress なんだろうけど、PHPって時点で自分の中で拒絶反応が起きてしまい、どうしても手を出すことができなかった。そして見つけたのが Publify 。 これは Rails製のブログエンジンで、PosgreSQL, MySQL どちらでも動くようになっている。以下使ってるのを挙げる。メジャーなgemばかりだ。

  • Rails 3.2.18
  • Carrierwave, fog
  • jquery
  • kaminari
  • minimagick

Qiita の投稿で参考になる記事があるので、こちらを読みつつ導入するといいです。

とりあえず git clone して bundle install したら普通に入って、 rails s やったら普通に起動した。ここまでは順調、順調。しかし、そこから色々なバグに遭遇w 以下、対応したのを覚えている範囲で書いていく。

ちなみにそうして対応して出来上がったのが、The Connexi Timesです。よければアクセスしていただけると嬉しいです。

ちなみにcloneした時点でのコミットIDは d97d345ec443c1b3e7252a3835fbe5bfc15b3391 です。頻繁に更新されているみたいなので、直っている可能性も高いです。

メール対応

Heroku でメールならやはり Sendgrid. これを使えば無料でメールが送信できる。ブログでメール使うのなんて書いてる側だけだから有料版いかないといけないほど送るってこともないだろうし。Heroku上からSendgridをアドオン追加し、config/environment.rb に以下を書こう。

ActionMailer::Base.smtp_settings = {
  :address        => 'smtp.sendgrid.net',
  :port           => '587',
  :authentication => :plain,
  :user_name      => ENV['SENDGRID_USERNAME'],
  :password       => ENV['SENDGRID_PASSWORD'],
  :domain         => 'heroku.com',
  :enable_starttls_auto => true
}

そして config/application.rb の最下部にあるメール設定はバグッてるので消しておく。

thin より unicorn

thin は同時アクセス50くらいですぐタイムアウトが発生しだす。unicorn に変えよう

admin のサイドバー変更でバグ

一つ目のバグ。サイドバーをカスタマイズしようとすると何故かサイドバーが全て消えると言うバグ。 lib/sidebar.rb l221

Sidebar.where("sidebars.staged_position IS NOT NULL").

all で取ってきちゃってたから一部取ってくるようにして直した。

公開前の記事のTAG が見えない

なぜか白で覆われてタグが見えないバグ。。

app/assets/javascripts/typeahead.js ;868

position: "relative"

プレビューと実際の記事が書いたのの2重で投稿される

こんな状態でよくmasterブランチに上げられるものだ。。w

themes/bootstrap/views/articles/read.html.erb

<%= render 'articles/protected_article_content', { article: @article } %>
を消す

AWS に画像をアップロードできない

app/uploaders/resource_uploader.rb

include CarrierWave::MimeTypes

追加

雑感

バグは結構あるけども、それの原因を探るプロセスはいいRails学習の訓練になる!久々にjQueryのコードやActiveRecordを触ったりできて逆に良かったです。これがもしWorkdPressでPHPのコードとかだったら発狂してただろうw まぁこの違いはプログラミング言語に対する愛情の問題な気がする。