Ruby on Railsに入門してみる
Posted Sep 07, 2017
作業しながらメモを取っていますので、どんどん追記します。
コンテナを起動し、コンテナに入ります。
$ sudo docker run -it -e VIRTUAL_HOST=ror.mockun.com --expose=3000 --name ruby ruby:2.4.1-jessie /bin/bash
OSパッケージの最新化とsqlite3とvimのインストール。
$ apt update -qq
$ apt upgrade -y
$ apt install -y build-essential libpq-dev sqlite3 vim
初心者は、安定版の5.0.x系を使ったほうが良いという情報を見つけたので、今回は5.0.x系の2017/9/8時点の最新を使います。
$ gem update
$ gem install rails -v 5.0.6
$ rails new blog
とりあえず起動する。
$ cd blog
$ vi Gemfile
# 「gem 'therubyracer', platforms: :ruby」行のコメントを解除し有効にする
$ bundle install
$ vi config/environments/development.rb
# endの直前に「config.web_console.whitelisted_ips = '0.0.0.0/0'」を追記する
$ bundle exec rails s -b 0.0.0.0
裏では何回も試行錯誤をしました。ものすごく長い道のりで、イライラする事もありましたが、ようやく中身のプログラミングに入れる状態になりました。
(9/8追記) あれ、上記手順で再現できない。サーバは起動しているように見えるけど、環境固有の問題ですね。nginx-proxyがタイムアウトになる。
** (9/9追記) ** やっぱりnginx-proxyが問題みたい。ローカルのUbutu17.04上でやったら大丈夫だった。
今日のメインはMVC。まずは画面から作成します。home/index画面を作成します。
$ cd /blog
$ rails generate controller home index
主に触りそうなのはこの辺でしょうか。
app/controllers/home_controller.rb
class HomeController < ApplicationController
def index
end
end
app/views/home/index.html.erb
<h1>Home#index</h1>
<p>Find me in app/views/home/index.html.erb</p>
http://localhost:3000/home/indexにアクセスすると。HomeControllerのindexメソッドが呼ばれる、と読めます。
これを"http://localhost:3000/“でアクセスするようにしたいので、「config/routes.rb」を書き換えます。
Rails.application.routes.draw do
get 'home/index'
root 'home#index' # <- ここを追加
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
「商品」画面を作る。
$ rails g controller products new
「商品」モデルを作ってmigrate(テーブル作成?)する。
$ rails g model Product id:int name:string description:string price:float
$ rake db:migrate
app/models/product.rb
class Product < ApplicationRecord
end
*.html.erbとcontrollerを書いていく、と。
Udemyの初心者講座の内容に沿って進めたので、あくまでもRailsで何か作る、ということに特化した学習しかできていません。@変数と@なし変数の使い分けすらまだ理解できていませんが、あとはコーディングしながら進めていくような感じですかね。
私はこちらのコースを受講しました。平易な言葉で説明してくれるので、良かったです。