LoginSignup
83
80

More than 5 years have passed since last update.

Rails4 + Refinery CMSで友人のBlogサイトを作る

Last updated at Posted at 2015-11-19

開発者目線でCMS選定しています。
ユーザーの要望を楽に満たせて、かつ開発しやすいものを選んでいると思います。

なぜCMSでRailsか?

  • wordpressは嫌
  • メンテナンスしやすい
  • Paasで安く手軽に運用したい
  • HTMLを書きたくない Slimがいい
  • 処理量が多くないので、Railsでも遅くならないはず
  • デザインは自分で頑張りたい

 wordpressはPHPの特性のためか、HTMLと処理が同じソース内に存在します。 昨今MVCと口うるさく言われている開発者としては非常に気持ちが悪いです。またwordpress独自の実装方法を覚えないといけないのが最悪です。
 wordpressの良い点は非開発者でもサイトが簡単に作れるところ。しかし現実はデザイナーさんだけでは解決できない要望が多いのも事実です。メンテナンスがしにくいwordpressよりもRailsで楽に要望に応えられる方がメリットが多いと判断しました。

どのCMSを使うか?

こちらのサイトを元に選定しました。
9 Best Ruby On Rails Content Management Systems (CMS) - HackHands
すべての候補CMSでdemoがあれば触って、documentやgithubのリポジトリを見ています。

主な選定基準

  • 現在も開発が行われているか
    • Rails3は嫌(遅い、文法違う)
    • 長期的に使うつもり
  • wordpressライクなPOSTができるか(demoページで確認)
  • Rails4対応

選定プロセス

上記候補群から選定基準をあてはめると、、

  • Refinery CMS
  • Locomotive CMS

が残りました。

 ほとんどgithubのリポジトリを見てはじいています。starがあまりにも少なかったり、masterブランチのコミットが最近活発でなかったりしたものです。

選定結果

表題の通り、Refinery CMSにしました。

Refinery CMSとLocomotive CMSの比較

Locomotive CMSの良い点

  • 割とメジャー
  • かなり開発が盛ん
  • 日本語対応

Locomotive CMSの悪い点

  • liquidというファイル形式(最悪)
    • hamlみたいなものですが、これ必要??とかなり疑問です
  • slimが使えない
    • liquidという特殊な文法のため、slimが動かないようです
  • yamlでコンテンツを管理する
  • Railsから外れている?
    • assetsを直接public以下に置くようdocumentationされていました

Refinery CMSの良い点

  • Railsから外れない
    • CMS独自の文法を覚える必要がない
    • slimが使える
  • 管理画面がシンプル
    • wordpressのように、良くわかっていない管理者に勝手にアップデートされて、サイトを壊される心配がない(他のCMSも同じメリットはあります)
  • 日本語対応

Refinery CMSの悪い点

まだ使いこんでいないので、悪い点が見えていません

Rails4でのインストール手順

rbenvなり、rvmを使ってgemの管理をしてください。
以下はrbenvを使っています。

mkdir {name}
cd {name}

vim Gemfile
  # refinerycms関連を入れてください。その他は私の好みです。
  source 'https://rubygems.org'

  ruby '2.2.3'

  gem 'rails', '4.2.5'
  gem 'mysql2'
  gem 'sass-rails'
  gem 'uglifier'
  gem 'coffee-rails'
  gem 'therubyracer', platforms: :ruby
  gem 'jquery-rails'
  gem 'turbolinks'

  # refinerycmsで必須
  gem 'execjs'
  gem 'refinerycms'
  gem 'refinerycms-acts-as-indexed'
  gem 'refinerycms-wymeditor'
  gem 'refinerycms-authentication-devise'

  gem 'slim'

  group :development, :test do
    gem 'rspec-rails'
    gem 'factory_girl'
    gem 'pry'
    gem 'pry-doc'
  end

  group :development do
    gem 'spring'
    gem 'spring-commands-rspec'
    gem 'quiet_assets'
    gem 'thin'
    gem 'better_errors'
    gem 'binding_of_caller'
    gem 'rubocop', require: false
    gem 'bullet'
  end

  group :test do
    # gem 'capybara'
    # gem 'launchy'
    # gem 'poltergeist'
    # gem 'faker'
    # gem 'fuubar'
  end
:wq
bundle install --path vendor/bundle
bundle exec rails new -B -T -d mysql .        # dbは自由に選択してください
vim config/database.yml                       # 自身の環境に合わせて設定してください
bin/rails g refinery:cms --fresh-installation
bin/rails g rspec:install                     # rspec書くつもりないのであれば不要です。
bundle exec spring binstub rspec              # rspec書くつもりないのであれば不要です。

bin/rails s
open http://localhost:3000/refinery
83
80
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
83
80