wataメモ

日々のメモをつらつらと書くだけ

2. Rails周りの環境構築

 今まではPadrinoしか触っていなかったが、今回はRails 4.2でChankoRidgepoleを試してみる。初Railsでハマる部分も有るとは思うがとりあえず環境構築から。前回のitamaeレシピに必要なpackageを追加。sqliteは多分要らないけど。

%w/epel-release sqlite sqlite-devel httpd-devel curl-devel
   apr-devel apr-util-devel libffi-devel openssh openssl
   openssl-devel readline-devel libxml2-devel libxslt-devel
   mysql mysql-server mysql-devel nodejs npm/.each do |pkg|
  package pkg
end

 そしていつものNokogiriを「--use-system-libraries」して入れてからrailsのインストール。

gem install rails --no-ri --no-doc

 プロジェクトの作成およびdatabaseの作成。

rails new shugepad -d mysql
cd shugepad
bundle install --path vendor/bundle
bundle exec rake db:create

 とりあえず起動の確認。Padrinoではlocalhost以外からも接続出来るようにするには「-h」だったがrailsは「-b」だった。

bundle exec rails s -b 0.0.0.0

 Gemfileにhaml用の設定を追加。

vi Gemfiles
gem 'haml-rails'
gem 'erb2haml'

 現状のerb(と言っても1つ)をhamlに変換。

./bin/rake haml:replace_erbs

 とりあえず「bower」を使おうと「package.json」作成してインストール。

npm init
npm install bower --save-dev

 そして「bower-rails」をgemに追加し、initialize。直接bowerを使わないでもいいようだ。

gem 'bower-rails'
./bin/rails g bower_rails:initialize

 bower.jsonはどうするのかと思ったら、「Bowerfile」というRuby DSLで設定するようだ。特に意味はないが「jQuery」と「Moment」を記載。

asset 'jquery'
asset 'moment'

デフォルトでは「./vendor/assets/bower_components」に入る。そしてbower.jsonは直下ではなく「vendor/assets/bower.json」に作成されていた。bower.jsonで記載していた設定がRuby DSLになったので記載方法を覚える必要があった。と言ってもそんなに差がないのですんなりいけるが。

 後はsemantic-uiも同じく「bower-rails」で入れようと思ったが、検索すると「less-rails-semantic_ui」というのがあるようだ。合わせて「autoprefixer-rails」も追加。これだけだと上手く動かなかったので「less-rails」もさらに追加。semantic-uiがlessに切り替わったのをどう対応するのかと思ったらそういうgemがあった。基本何でも有るのがRailsなのかも。

gem 'less-rails-semantic_ui'
gem 'autoprefixer-rails'
gem 'less-rails'

 とりあえずRails環境構築周りはここまで。余談だが、今回試しでrbenvでsystemにインストールしてみたがやはり権限周りの問題が出るので、ユーザが管理できるところに入れたほうがいいようだ。