RubyOnRailsめちゃ多くないですか。 一回くらい触ってみなきゃなってことで、開発環境構築に着手。
参考ページ
Dcokerの公式ページがこれ
Quickstart: Compose and Rails https://docs.docker.com/compose/rails/
それをちょっと噛み砕いてくれているのがこちら
DockerでのRuby on Rails環境構築を一つずつ詳解する https://qiita.com/daichi41/items/dfea6195cbb7b24f3419
上記手順に従って、できました。
※Railsチュートリアルだと、1.3.3くらいまでのことはここまででできている様子。
ディレクトリ構成
Laravelとかは使ってるけど、Rails初めてなのでとりあえずディレクトリ構成をみる
$ ls -1 . Dockerfile Gemfile Gemfile.lock README.md Rakefile app bin config config.ru db docker-compose.yml entrypoint.sh lib log package.json public storage test tmp vendor
https://railstutorial.jp/chapters/beginning?version=5.1#sec-development_environment
ディレクトリ | 用途 |
---|---|
app/ | モデル、ビュー、コントローラ、ヘルパーなどを含む主要なアプリケーションコード |
app/assets | アプリケーションで使うCSS (Cascading Style Sheet)、JavaScriptファイル、画像などのアセット |
bin/ | バイナリ実行可能ファイル |
config/ | アプリケーションの設定 |
db/ | データベース関連のファイル |
doc/ | マニュアルなど、アプリケーションのドキュメント |
lib/ | ライブラリモジュール |
lib/assets | ライブラリで使うCSS (Cascading Style Sheet)、JavaScriptファイル、画像などのアセット |
log/ | アプリケーションのログファイル |
public/ | エラーページなど、一般(Webブラウザなど)に直接公開するデータ |
bin/rails | コード生成、コンソールの起動、ローカルのWebサーバの立ち上げなどで使うRailsスクリプト |
test/ | アプリケーションのテスト |
tmp/ | 一時ファイル |
vendor/ | サードパーティのプラグインやgemなど |
vendor/assets | サードパーティのプラグインやgemで使うCSS (Cascading Style Sheet)、JavaScriptファイル、画像などのアセット |
README.md | アプリケーションの簡単な説明 |
Rakefile | rakeコマンドで使えるタスク |
Gemfile | このアプリケーションに必要なGemの定義ファイル |
Gemfile.lock | アプリケーションで使われるgemのバージョンを確認するためのリスト |
config.ru | Rackミドルウェア用の設定ファイル |
.gitignore | Gitに取り込みたくないファイルを指定するためのパターン |
おそらくapp/
以下にコードを書いていくんでしょう。
app以下を確認
というわけで、app/
以下を確認。
$ tree app app ├── assets │ ├── config │ │ └── manifest.js │ ├── images │ ├── javascripts │ │ ├── application.js │ │ ├── cable.js │ │ └── channels │ └── stylesheets │ └── application.css ├── channels │ └── application_cable │ ├── channel.rb │ └── connection.rb ├── controllers │ ├── application_controller.rb │ └── concerns ├── helpers │ └── application_helper.rb ├── jobs │ └── application_job.rb ├── mailers │ └── application_mailer.rb ├── models │ ├── application_record.rb │ └── concerns └── views └── layouts ├── application.html.erb ├── mailer.html.erb └── mailer.text.erb 17 directories, 14 files
MVCフレームワークなので、models/controllers/viewsあたりが基本になるのかな。
controllerをみる
class ApplicationController < ActionController::Base end
ここまでみて自分がRubyのクラス定義とかの文法知らないことに気づく。
とはいえ、まあ大体わかる。 継承してるんですね。
クラスを継承する - クラスの継承 - Ruby入門 https://www.javadrive.jp/ruby/inherit/index1.html
二重コロンはモジュール内のクラス呼び出しの記法らしい
Ruby - railsの::について|teratail https://teratail.com/questions/12389
Hello Worldしてみる
なんとなく構成がつかめたので、チュートリアルに沿ってHelloWorldする
class ApplicationController < ActionController::Base protect_from_forgery with: :exception def hello render html: "hello, world!" end end
Rails.application.routes.draw do root 'application#hello' end
気付き
- コントローラ名は、controllerをとった文字になる。
表示できた。
とりあえずここまで。