Rails 5でアプリ作成してみた
installする際に少しハマりましたが、基本はRails4系と変わらなかったのです。
1. Rubyのバージョンを最新にする
Rails5ではRuby 2.2.2
以降が必須らしい。
ローカルのworkingディレクトリに移動し、Rubyのバージョンを確認
$ ruby -v
2.3.0だったので、アップデートは不要。
ちなみに最新版を確認するコマンドは下記
$ rbenv install --list
2. Railsのバージョンを最新にする
現在のバージョンは4.2.5
だったので、最新版5.0.0をインストール!
$ gem install rails --pre
--pre
オプションで最新版を指定できるらしい
エラー発生 (ノω・、)
nio4r
というものをinstallする箇所でコケている!
logファイルを確認
$ cat /Users/kaorina/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-13/2.3.0-static/nio4r-1.2.1/mkmf.l
og
xcodeのiosをゴニョゴニョするというメッセージが出ていただので(スクリーンショット取り損ねました。。)
xcodeを立ち上げて、ステップに沿ってアップデート。
そして、再度installコマンドを実行したらイケた!
以下のステップはRailsのバージョン問わず同じです。
scaffoldコマンドでサクッとアプリを作成
newコマンドでアプリの土台を作成。(DBはPosgreを指定)
$ rails _5.0.0.1_ new threedprinterq -d postgresql
アプリのフォルダに移動しbundle install
今回のアプリ名は threedprinterqというQ&Aアプリを作ります
$ cd threedprinterq
$ bundle install
config/application.rbを編集
require_relative 'boot' require 'rails/all' Bundler.require(*Rails.groups) module Threedprinterq class Application < Rails::Application config.time_zone = 'Tokyo' #config.i18n.default_locale = :ja #日本語使う指定は後で有効にする config.active_record.default_timezone = :local config.autoload_paths += %W(#{config.root}/lib) #lib以下を読み込むように設定 config.generators do |g| g.test_framework :rspec, #テストはrspecを使用。コントローラーのテストのみ自動作成 fixtures: true, view_specs: false, helper_specs: false, routing_specs: false, controller_specs: true, request_specs: false g.fixture_replacement :factory_girl, dir: "spec/factories" #factory_girlを使用 g.assets false g.helper false end end end
Rails4では下記も記載していましたが、5ではコールバックの処理方法が変わったのでいらないのかなーと思っています。
config.active_record.raise_in_transactional_callbacks = true
参照:
Rails アップグレードガイド | Rails ガイド
posgreを起動
$ postgres -D /usr/local/var/postgres
DBを作成
$ bundle exec rake db:create
質問用のCRUDを作成
カラムはtitile, とtext型のcontentという構成
$ rails g scaffold question title content:text
Migration実行
$ bundle exec rake db:migrate
ブラウザで確認
$ rails s
を実行後、ブラウザで http://localhost:3000/ にアクセスすると
素敵なwelcomeページが出てきた!わーい!