###今日の学習内容
今日はこれまでやってきた学習内容を振り返りました(・ω・)ノ
こうして見てみると、時間をかけた割に全然進んでいないのがとても残念ですが...
少し長いので、気になるところ以外は読み飛ばしていってください
(すべて順々に読んでもらえればこれまでの私の学習内容がおさらいできるので、初学者の方やRailsを始めてみたい方はすべて読んでもらえると嬉しいです(^^)一緒に楽しく覚えていきましょう!!)
これまでは学習を進めていく上で混乱しないように、改定基礎3版RubyOnRailsの通りに書いて進めてきましたが、自分なりにもう一度作り直してみたいと思い立ったわけです( ̄▽ ̄)
なので、今一度cloud9でRailsを使い始めるところから復習していきます。
これまでの学習内容から引用しているとこともあります。ご了承くださいm(__)m
####cloud9でBlank(テンプレートなし)を選択し、Railsを使えるようにする
私の場合はcloud9で学習を始めることにしたので、cloud9の登録から始めました。
登録が完了されましたら、ワークスペースの作成を行ってください。↓
今回はhappy_hacking_days
という名前にしましたが、ここは皆様のお好きな名前に変えてください( ´ ▽ ` )ノ
テンプレートなし(Blank)で始めたので、まず、ターミナルにgem install rails
と打ち込み、Railsをインストールしましたね( ̄▽ ̄)
####cloud9のワークスペースにアプリケーションフォルダを作る
次にアプリケーションフォルダを作っていきます。
アプリケーションフォルダを作るには、rails new
コマンドを使います。
今回は、happy_hacking_days
の頭文字をとってrails new hhd
とターミナルに打ち込み、実行しました。
上記のようなフォルダが作成されたと思います( ̄▽ ̄)
動作確認をしておきましょう!
ターミナルにcd アプリケーション名
を打ち込んで、アプリケーションのフォルダに移動してください。
移動ができたら、Railsサーバを起動します。
cloud9ではrails s -b $IP -p $PORT
と打ち込むことで起動できます( ´ ▽ ` )ノ
打ち込んだ後にずらずらと文字列が流れてくるので、Rails 5.0.0.1 application starting in development on http://0.0.0.0:8080
という文章の最後にあるリンクをクリックして開いてください。
下の画像のページに移動したら成功です!↓
####コントローラの作成
コントローラを作成するにはrails g
コマンドを使います。
root
コントローラを作成したい場合、rails g controller root
とターミナルに打ち込み実行します。( ̄▽ ̄)
↓happy_hacking_days/app/controller
にroot_controller.rb
が生成されましたね。
####アクションの作成
アクションはコントローラのファイルの中に記述することで作成できます。
今回は、中身のない空のアクションtop_page
を作成しました。↑
このアクションは、次に復讐するルーティングの仕方でトップページに設定します( ^ω^ )
####トップページのルーティング
Railsアプリケーションのページは、コントローラとアクションを作っただけでは出来ません(ー ー;)
ルーティングというURLのパスとコントローラを結びつける指示書のようなものが必要となってきます。
ルーティングはapp/config
の中にあるroutes.rb
にコードを書くことで行うことができます。
↑上の画像のように書くことで、トップページ(ルートディレクトリ?)を設定することができます( ´ ▽ ` )ノ
root#top_page
の``root``はコントローラ名、``top_page``はアクション名ですね。
####ビューの作成
ビュー(テンプレート)はapp/views/コントローラ名
フォルダの中に、erb
で終わるファイルを作ることで作成できます。
例えば、top_page
アクションのビューを作りたい場合はroot
フォルダの中にtop_page.html.erb
というファイルを作成するわけです( ̄▽ ̄)↓
とりあえず、中身は適当です(笑)
####ルーティング
先ほどトップページのルーティングを行いましたが、次はトップページ以外でURLのパスとコントローラ(アクション)を結びつけていきたいと思います。
下準備として、introduction
アクションをroot_controller.rb
の中に作成します。↓
同じ名前のテンプレートも用意しておきましょう。↓
文面はお好きなように変更してくださいm(__)m
では、ルーティングをしていきますね。
先ほどと同じようにroutes.rb
を変更していきます。
上の画像のように、get "URLのパス" => "コントローラ名#アクション名"とすることで、URL欄に
/コントローラ名/アクション名``と打ち込まれた時にアクションを呼び出せます。
as:
オプションでルーティングに名前をつけ、コントローラやビューでつけた名前_path
メソッドを使うことで文字列/つけた名前
を返すようにすることができるのです( ̄▽ ̄)
####リダイレクション
リダイレクションとは、リクエストされたURLとは別のURLのページに移動させることですね。
こちらをRailsで行うには、redirect_to
メソッドを使うことで行うことができます( ´ ▽ ` )ノ
例えば、redirect_to :action "top_page"
をintroduction
アクションの中に記述したとします。
そうすると、introduction
アクションが呼び出された時にtop_page
アクションのページに移動するわけです( ̄▽ ̄)
詳しくはこちらをご覧くださいm(__)m
####リンクの作成
リンクはlink_to
メソッドを使うことで作成できます。
とても簡単ですね(^^)
試しにintroduction.html.erb
の中身を書き足してトップページへのリンクを作ってみます。
↓
root_path
は/
を返すメソッドなので、トップページに設定したtop_page
アクションが呼び出されます( ´ ▽ ` )ノ
画像をクリックしてリンク先に移動した経験はありませんか?
そのようなこともlink_to
メソッドで行うことができます( ´ ▽ ` )ノ
方法はとても簡単で、link_to
メソッドの引数にimage_tag
メソッドを使うのです。
この画像をクリックしても、トップページに移動するようになっています( ̄▽ ̄)
####レイアウトテンプレートの指定方法
レイアウトテンプレートを指定する方法は3つあります。
#####その1、ファイル名がコントローラー名.html.erb
のファイルを置く
ファイル名がコントローラー名.html.erb
のファイルをapp/views/layouts
フォルダに置くという方法が一つ目ですね( ̄▽ ̄)
そのテンプレートが、コントローラ名の場所に入れたコントローラのテンプレートになります。
app/views/layouts
フォルダの場所については下の画像を参考にしてください。
#####その二、コントローラでlayout
メソッドを利用する
コントローラでlayout
メソッドを利用することが、二つ目の方法です。
例えとして、TopController
のレイアウトテンプレート`にsample.html.erb
を使いたいときの場合を説明したいと思います(・ω・)ノ
まず、sample.html.erb
をapp/views/layouts
フォルダに作成しておきます。
次に、top_controller
に
layout "sample"
を書き足します。
引数に入るのは、上の画像のように拡張子を除いた名前になります(・ω・)ノ
ちなみに、シンボルではなく、文字列にする必要があるようです。
#####その三、アクション内でrender
メソッドにオプションをつける
アクション内でrender
メソッドにlayout
オプションをつけることで指定することができます。
例として、sample
アクションを作って指定してみたいと思います。↓
def sample
if "何らかのエラーが発生"
render layout: "Error!"
end
end
このように、ある条件の時にだけレイアウトを切り替えられます( ´ ▽ ` )ノ
###あとがき
今日は新しくhappy_hacking_days
ワークスペースを作成して復習していきましたが、改定基礎3版RubyOnRailsでは最終的にログイン機能や簡単なブログ機能のついた草野球チームのサイトが作れるということです。
なので、今日作ったワークスペースを利用して、簡単なプログラミング学習日誌をつけるようなサイトを作っていきたいと思っています。( ̄▽ ̄)
皆様も、自分の作ってみたいものを想像してみることで学習意欲が高まると思いますので、ぜひ作りたいものを想像してみてください( ´ ▽ ` )ノ
長文でしたが、ここまで読んでくださりありがとうございましたm(__)m
誤字・脱字が多かったかもしれないですね(^◇^;)
これまでの学習内容はこちらから御覧ください↓
今日書いたより詳しく書いてるはずなので、初学者の方でも大丈夫だと思います( ´ ▽ ` )ノ
私が初学者ですし(笑)
9/20日 追記
今月中に、HTMLハイブリットアプリの開発に本腰を入れて学習することになったので、9月いっぱいは更新できなくなると思います。
すみませんm(__)m
###参考にさせていただいたサイト・文献