Ruby on Rails5 Progate Ⅰ

Ruby on Railsとは
Webアプリケーション開発に必要なフレームワーク(開発に必要な工数を減らす事ができる)

コマンドライン

・$  rails new Tweet_app(作成するアプリ名)
   //Ruby on Rilsでの開発の基礎項目を自動生成する事ができる。

・$  rails server (新規ウィンドウ) 
   //ローカルホストサーバを立ち上げる。localhost:3000でアクセス可能。

・$ rails generate controller コントローラ名(home) アクション名(top)
 $ rails generate controller home top
 
// トップページを生成する。localhost:3000/home/top

ページ作成に必要なもの
view ・・・見た目を作るためのHTMLファイル(〜.erbで生成される)
controller ・・・controllerを経由してブラウザにviewを返している。
routing ・・・controllerとブラウザをつなぐ。
(routing→controller→view)

controller

 rails generate controller home top 実行の際にhome_controller.rb(controllerファイル)が生成され、ファイルの中にtopメソッド(アクション)が追加されている。
home=コントローラ名 top=アクション名
[home_controller.rb]

  class HomeController < ApplicationController
    def top  (*アクション)
    end
  end
 アクションは、コントローラと同じ名前のビューフォルダから、アクション(top)と同じ名前のHTMLファイルを探してブラウザに表示する。


routing

 送信されたURLに対して「どのコントローラの、どのアクション」で処理するかを決める「対応表」
 「config/routes.rb」に定義される
「get "URL" => "コントローラー名#アクション名"」
ex.)
  get "home/top" => "home#top"
=ブラウザでlocalhost:3000/home/topを実行時、
 homeコントローラーのtopアクションで処理


routingの変更

routingを書き換えるとトップページのurlを変更する事ができる。

[routes.rb]
 get "home/top" => "home#top"

// localhost:3000/top でhome/top.html.erb にアクセス可
新しいページを作成する場合
(*アクション名が同じ場合コマンドでは追加できない)
・[routes.rb] 内に直接 
 get "URL" => "コントローラー名#アクション名"を追加する

[routes.rb]

  get "top" => "home#top"
  get "about" => "home#about" 
      //(URLで「localhost:3000/about」= aboutアクションにアクセス)

[home_controller.rb]

  def top
  end 

  def about //(上記URL指定の際に about.html.erbにアクセス)
  end
  

・viewファイルを追加(直接vire/homeフォルダへアクセスして右クリックで)


レイアウトの整頓(SCSS) 

SCSSで行う(controllerコマンド実行後にstylesheetフォルダと一緒に自動生成されてる)

画像の挿入

 画像データは基本的にpublicフォルダ内に保存。
 画像データを読み込む際に、ulrの最初に「/(スラッシュ)」で万事OK


トップページを指定したい(localhost:3000のみで表示されるページ)

 [routes.rb]内の、トップにしたいファイル名を「/」に変える。
[routes.rb]
 get "/" = "home#top" 


各ページからのリンク作成

<a>タグに記述するurl の最初に「/」で万事OK
*指定するurlは[routes.rb]と同じにする。

いいなと思ったら応援しよう!