2. Rails周りの環境構築
今まではPadrinoしか触っていなかったが、今回はRails 4.2でChankoとRidgepoleを試してみる。初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にインストールしてみたがやはり権限周りの問題が出るので、ユーザが管理できるところに入れたほうがいいようだ。