プログラミング学習(一日目) ProgateでRuby On Rails レッスン1


本当はプログラミング学習一日目ではないけど、Qiitaに投稿を始めるので今日を一日目としました。

 今日学んだこと

$rails new アプリケーション名

で、同名のフォルダを作成し、アプリを作る準備ができる

$rails server

で、サーバー起動。localhost:3000にアクセス可能

Railsでページを表示するにはviewとcontrollerとroutingが必要

$rails generate controller home top

で、まずはviews/home/top.html.erb(ビューファイル)が作られ、
app/controllers/home_controller.rb(コントローラ)が作られ、その中にはtopメソッドが作られる(このtopメソッドはアクションという)
そして、アプリケーション名/config/routes.rb(ルーティング)が作られる。

Railsでページを表示するまでの流れ

まずブラウザにURLを入れられます。仮に「localhost:3000/top」だとする
するとルーティングにてこのURLに対応するコントローラ名とアクション名があるので、そのコントローラのアクションが呼び出される。

routes.rb
Rails.application.routes.draw do
  get "top" => "home#top"
end

これは"top"というURLが来たらhomeコントローラのtopアクションを実行しろという意味。

そしてhomeコントローラのtopアクションでは、

home_controller
class HomeController<ApplicationController
  def top
  end
end

と書かれてある。このアクションの役割は、views/の中でコントローラと同じ名前(この場合はhome/)のフォルダから、アクションと同じ名前のHTMLファイル(この場合はtop.html.erb)を探し、ブラウザに返すこと。

これでRailsでページを表示するのはOK

だが、また新たにページを増やすときに

$rails generate controller home about

とやっても、既にhomeコントローラはあるのでこのコマンドは実行できない(generateは「生成する」という意味)
これでRailsでページを表示する方法の基礎の基礎はできたはず。

ほかには

$rails generate contlloer home ...

時に生成されたapp/assets/stylesheets/home.scssにコードを書けば、すべてのビューにCSSが適用される(ここはあまり理解していない)。

tweet_app/public/に画像を保存すれば、"/画像名"でHTMLやCSSで画像を表示できるなど。

以上が、今日学んだRuby On Rails レッスン1です。

もし心優しい方が居て、アドバイスを頂けると嬉しいな...