読者です 読者をやめる 読者になる 読者になる

Kaorina’s diary

Ruby on Railsとかとか

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

xcodeiosをゴニョゴニョするというメッセージが出ていただので(スクリーンショット取り損ねました。。)
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ページが出てきた!わーい! f:id:Kaorina:20161031132722p:plain