‹ Mockun Note

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で何か作る、ということに特化した学習しかできていません。@変数と@なし変数の使い分けすらまだ理解できていませんが、あとはコーディングしながら進めていくような感じですかね。

私はこちらのコースを受講しました。平易な言葉で説明してくれるので、良かったです。

【初心者向け】Ruby on Rails 5を用いたWebアプリケーション開発入門

🏷