Ruby
Rails
rbenv

railsの初心者用備忘録

はじめに

この記事は、非エンジニアがRuby on Railsデビューする時に書いた初心者用備忘録です。
ところどころ飛ばしている内容も多いですが、同じようにrailsデビューをする人にぜひ読んでいただけたら良いなぁと思っています。
また、記事を書いている本人も初心者であるため、間違っているところなどございましたらコメントをお願いいたします。

今回用いた環境

  • macOS Sierra 10.12.2
  • Homebrew 1.2.4

今回は、Homebrewがインストールされている前提で話を進めていきます。
Homebrewが入っているか確認は$ brew -vで確認してください。
もしインストールされていなかったら、下記の記事等にしたがってインストールしてみてください。
( Homebrewインストール参考 : MacにHomebrewをインストールする)

また、$ brew updateでHomebrewをアップデートしておくと良いと思います。

rbenv・Ruby・Railsのインストール手順

rbenvのインストール

rbenvとはrubyのバージョンを簡単に変更できるコマンドラインツールです。

  • rbenvとrbenvでRubyをインストールするのに必要なruby-buildをインストールします。

    $ brew install rbenv ruby-build

  • rbenvの初期化スクリプトをshellへ追加します。
    自分はbashを使っているため、.bash_profileに追記しました。

    $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

  • 先ほどファイルに書いた内容を実行します。

    $ source ~/.bash_profile

これで、インストール完了です。
rbenvが入ってるか$rbenv -vで確認してみましょう。

Rubyのインストール

先ほどインストールしたrbenvとruby-buildを用いてRubyをインストールします。
rbenvとruby-buildを使えば、rubyのバージョンの変更も簡易にできるそうです。

$ rbenv install (Rubyのバージョン)
(今回は2.4.0をインストールしました。)

これでインストール完了です。
Rubyがしっかり入っているか$ruby -vで確認してみましょう。

Railsのインストール

railsはgemというRuby用のパッケージ管理ツールを使ってインストールします。

$ gem install rails
(Permissionエラーがでたらgemの前にsudoをつけましょう。)

これでインストール完了です。
Railsがしっかり入っているか$rails -vで確認してみましょう。

ここまでの参考資料

Railsの新規アプリケーションを作成する

新規アプリケーションを作りたいディレクトリに移動して、下記のコマンドを実行しましょう。
$ rails new (アプリケーション名)

すると下のようなファイルが出来上がります。
(記載されているファイルやフォルダは一部です。)

(アプリケーション名)  - app      
                    - assets
                    - controllers
                    - models
                    - views
                    - ...etc
                              - config
                    - routes.rb
                              - db
                              - ...etc
               

サーバーを立ち上げる

ブラウザの表示を確認するために、サーバーを立ち上げます
$ rails server
コマンドを実行すると
=> Rails 5.1.2 application starting in development on http://localhost:3000
と出てくるのでhttp://localhost:3000をブラウザで表示させます。

トップページを作成

トップページを作成するには、(アプリケーション名)のディレクトリに移動して、下記コマンドを実行します。
$rails generate controller home top
すると、

(アプリケーション名)  - app      
                    - assets
                        - stylesheets
                            - home.scss
                    - controllers
                        - home_controller.rb
                    - models
                    - views
                        - home
                            - top.html.erb
                    - ...etc
                              - config
                              - db
                              - ...etc
               

などなど、新しいファイルが作成されます。

railsアプリケーションの基本

railsアプリケーションでページが表示される時、routing→controller→viewという順で処理が行われています。
もう少し具体的に言うと、送信されたURLに対してroutingで適切なcontroller内アクションに割り当て、ブラウザに返すviewをviewsフォルダの中から見つけ出しています。

routing

configフォルダーの中のroutes.rbを編集してURLを設定していきます。

routes.rb
Rails.application.routes.draw do
  # 書き方
  # get "URL" => "コントローラー名#アクション名"
  get '/' => home#top

end

これで、http://localhost:3000でトップページが表示されるように設定ができました。

controller

appのcontrollersの中に、コントローラーごとにファイルを作成します。
コントローラー内のアクションは、viewsの中にあるコントローラー名と同じ名前のフォルダから、アクション名と同じhtmlファイルを探してブラウザに返す役割をもっています。

home_controller.rb
class HomeController < ApplicationController
  def top
  end

  # def アクション名 で views/home/アクション名.html.erbを返す。

end

view

ブラウザに表示させるhtmlを書きます。
(アクション名.html.erb の erbはEmbedded Ruby(埋め込みRuby)の略であり、このファイル形式ではhtmlの中にrubyのコードを記述することができます。)

終わりに

これは、railsアプリを作る初歩にすぎません。
ここからdb(データベース)であったり、Postモデルなども理解してアプリケーションを作っていく必要があります。
これからrailsアプリ開発にあたって何かつまづいたりしたら、この記事に追記するかもしくは新規記事で投稿していこうとおもいます!

つまづいたこと

新しいアプリを作成時にPermissionエラーが絶えない!

$ rails new new_appで新しいアプリを作成したときにPermissionエラーが出ました。

Errno::EACCES: Permission denied @ dir_s_mkdir -
/Users/YunaKato/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/extensions/x86_64-darwin-16/2.4.0-static/bindex-0.5.0
An error occurred while installing bindex (0.5.0), and Bundler
cannot continue.
Make sure that `gem install bindex -v '0.5.0'` succeeds before bundling.

In Gemfile:
  web-console was resolved to 3.5.1, which depends on
    bindex
         run  bundle exec spring binstub --all
bundler: command not found: spring
Install missing gem executables with `bundle install`

このような時は$sudo rails new new_appで新規アプリを作りましょう。