はじめに
この記事は、非エンジニアが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を設定していきます。
Rails.application.routes.draw do
# 書き方
# get "URL" => "コントローラー名#アクション名"
get '/' => home#top
end
これで、http://localhost:3000
でトップページが表示されるように設定ができました。
controller
appのcontrollersの中に、コントローラーごとにファイルを作成します。
コントローラー内のアクションは、viewsの中にあるコントローラー名と同じ名前のフォルダから、アクション名と同じhtmlファイルを探してブラウザに返す役割をもっています。
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
で新規アプリを作りましょう。