Railsチュートリアル 第1章 1.3 最初のアプリケーション
- 1.3 最初のアプリケーション
- 1.3.1 Bundler
- 1.3.2 rails server
- 1.3.3 Model-View-Controller(MVC)
- 1.3.4 Hello,World!
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にそのアクションを実行するタイミング?場所?を定義する。