Railsチュートリアル 第1章 1.3 最初のアプリケーション

 

1.3 最初のアプリケーション

・HelloWorldを作る。

Unixコマンドまとめ

 ls 現在のディレクトリ内容の表示

 mkdir NAME ディレクトリの作成

 cd ディレクトリの移動(cd..で上、cd~でホーム)

 mv A Bファイルの移動とリネーム

 cp A B ファイルのコピー

 rm A ファイルの削除

 rmdir A 空のディレクトリの削除

 rm -rf A 中身のあるディレクトリの削除

 cat A ファイル内容の結合と表示

・アプリケーション作成の手順

 ①rails newを実行する。Railsのバージョンをインストールしたものと合わせる。

 言われたこと:

HEADS UP! i18n 1.1 changed fallbacks to exclude default locale.
But that may break your application.

If you are upgrading your Rails application from an older version of Rails:

Please check your Rails app for 'config.i18n.fallbacks = true'.
If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be
'config.i18n.fallbacks = [I18n.default_locale]'.
If not, fallbacks will be broken in your app by I18n 1.1.x.

If you are starting a NEW Rails application, you can ignore this notice.

For more info see:
https://github.com/svenfuchs/i18n/releases/tag/v1.1.0

Post-install message from sass:

Ruby Sass has reached end-of-life and should no longer be used.

* If you use Sass as a command-line tool, we recommend using Dart Sass, the new
primary implementation: https://sass-lang.com/install

* If you use Sass as a plug-in for a Ruby web framework, we recommend using the
sassc gem: https://github.com/sass/sassc-ruby#readme

* For more details, please refer to the Sass blog:
https://sass-lang.com/blog/posts/7828841

run bundle exec spring binstub --all
* bin/rake: Spring inserted
* bin/rails: Spring inserted

  bundle installが勝手に実行されるらしい。また、このように生成されたファイル

  構造は、RoRにおいて標準化されたもの。

 

1.3.1 Bundler

・さっきのコマンドで、Bundlerというものがついでにインストールされた。

・Bundelerを使ってgemをインストールできる。

・gemのインストールのために、Gemfileに記述をしておく必要がある。Gemfileに

 は、Bundlerによってインストールされるgemの名前とバージョンが指定されて

 いる。

・Gemfileのバージョン指定の仕方は、①バージョンの数字を固定し、そのバージョ

 ンのみを使う方法と、②バージョンを範囲指定し自動でアップデートする方法の

 2つがある。

 ①gem "A", "5.1.6"

 ②gem "A", ">=1.3.0" :ver1.3.0以上のものがあれば自動でアップデート

  gem "A", "~>5.0" ver5.0~5.9までがあれば自動でアップデート、6.xなどは使わない

・Gemfileに必要なgemとそのバージョンの記述をし終えたら、コマンドライン

 でbundle install を実行し、gemをinstallする。

・bundle updateを先に実行しろと言われたので、した。

 

1.3.2 rails server

RoRには、テスト用のローカルサーバーを立ち上げるコマンド rails server がつ

 いている。

rails server を実行した後、C9のPreview>Preview Running Applicationを押すとブラ

 ウザが開く。C9のブラウザでは「接続が拒否されました」と表示されるが、右

 上の"Pop out into new window"を選択すると新しいタグで開け、railsが動いている

 のを確認できる。

 

・演習

 Q1:Railsのページ上でのrubyのバージョンと、コマンド ruby -v で確認できる開発

   環境のバージョンはどうなっている?

 A1:一致している。2.6.3。

 

 Q2:Railsのバージョンは?

 A2:同じく一致している。

 

1.3.3 Model-View-Controller(MVC)

RoRはModel-View-Controllerというアーキテクチャパターン(設計の種類)を採用し

 ている。MVCでは、データとデータを表示するソースコードが分離してファイルに

 収められているということ。要するに大体のゲームとかとで、プログラム部分と画

 像とかマップとかアイテムの数値とかがわけられている感じ。

・ブラウザがリクエストをControllerに送り、ControllerはModelを介してデータベー

 スなどからデータを受け取りViewを作る。そのViewをブラウザに渡してユーザーに

 ページが表示される、という役割分担をMVCで果たしている。

 

1.3.4 Hello,World!

・今の空のアプリケーションに、Hello,World!と表示するアクション(命令みたいな

 もの)を追加したい。

・これはMVCの中でいうとControllerの仕事なので、

 app/controllers/application_controller にアクションを追加する。

・以下の文言を追加する。関数の定義みたいなもの。

  def hello
    render html: "hello, world!"
  end
end

・renderはテキストを表示するメソッド。

・アクションを追加しただけでは実行されない。controllerがどのアクションを実行す

 ればいいかの司令のファイルである、routerを編集してデフォルトのアクションの

 代わりにhelloを実行してくれるようにする必要がある。routerファイルは、 

 config/routersである。アクションを追加する場合、

Rails.application.routes.draw do
  root 'application#hello'
end

のように記述する。

・まとめると、新しいアクションを追加するためには、

 ①Controllerに新しいアクションを定義する。

 ②routerにそのアクションを実行するタイミング?場所?を定義する。