Rails学習【フォームヘルパー】【レイアウト】
フォーム作成に使われる<%= %>タグ
・<form>タグの作成
form_tag(controller: コントローラー名, action: アクション名)
このタグで送信先のコントローラーとアクションを指定
・入力フィールド
<%= text_field_tag("input1") %>
・送信ボタン
<%= submit_tag("Click") %>
・フォームの終了
<% end %>
終了のタグにはイコールがつかない
Bootstrap独自のクラスを指定してフォームを作りたい場合
<%= text_field_tag( ID ,デフォルト値, ・・属性の設定・・) %>
【レイアウト】
(app)-(views)-(layouts)にテンプレートが格納されている
Rails学習【ビュー3】
■フォームの送信
パラメータによる値の送信はプログラム内からアクセスする場合には便利だが、
ユーザーから入力してもらう場合はフォームを利用するといい。
<例>
#index.html.erbを書き換える
Rails学習【ビュー2】
■テンプレートに値を表示する
テンプレートの利点はRuby側から(コントローラー側から)表示を操作できる。
<例>
#HelloControllerクラス(hello_controller.rb)を書き換える
Rails概要【ビュー】
webページの本格的な表示にはRuby言語だけでは限界
→HTMLなど書いてデザインする(RubyのERBという技術を使う)
appフォルダの中のviewsというフォルダがあり、その中にコントローラー名のビューテンプレートを保管するフォルダを作る。
前回のHelloControllerクラスに用意したindexアクションメソッドのテンプレートを作る。
テンプレートファイルは【アクション.hrml.erb】
※今回の場合は、index.html.erb
〔記述例〕
Rails概要【コントローラー】
$ raila new アプリ名
これをRubyで実行するとフォルダが作られる
※今回はわかりやすくするためにDesktopにディレクトリを指定して作業開始
様々なフォルダ・ファイルが作成されるが、重要なのは
【app】アプリの本体が格納
【config】細かな設定を実行するところ
【app】の中はこれだけ知っていればではなく、全て覚える必要あり。中でも
(models)データベースアクセスのパーツ
(views)画面表示のパーツ
(controllers)プログラム制御のパーツ
(controllers)
$ rails generate controller hello
#「hello」というコントローラーの作成 実行前にディレクトリはRailsAppに移動しておく
Visual Studio Code(VSC)で開く
※command + O でエクスプローラー起動
class コントローラークラス名 < ApplicationController
## 内容記述 ##
end
初期の(hello_controller.rb)では、HelloControllerというクラスを作成しているだけ。
コントローラーのクラスは【ApplicationController】を継承して作るのが基本
内容にはindexなどのアクションメソッドを記述していく
〔例〕
def index
render plain:" ----------"
end
#後述される値をレンダリングする
# plain:---はテキストデータとして扱うということを示す
Railsでのアクションメソッドの呼び出し
http//ドメイン/コントローラー名/アクション名
実際にweb上に表示するにはルーティング設定が必要。
#config内のroutes.rbに記述
Rails.application.routes.draw do
--ルーティング情報--
end
routes.rbにはgetメソッドを使う
基本 get 'コントローラー/アクション'
手動 get 'hello(アドレス)' to: 'hello(コントローラー)#index(アクション)'
# http://localhost:3000/helloというアドレスにアクセスしたら、HelloControllerクラスのindexメソッドを呼び出す
htmlを出力するにはmsgという変数にソースコードをテキストとして保管
render html : msg
上記で呼び出し
HTMLのタグは外部攻撃に対して対策している為、自動的にエスケープ文字へ変換して表記される
→ render html : msg.html_safe
と記述するとHTMLタグとして表示される。
クエリーパラメータ
外から(コントローラーにアクセスする前からの)値を受け取って表示する
http://アクセスするアドレス?名前=値$名前=値&.......
コントローラーで内容を作っていく
プログラミング学習
以前から細々と続けている学習の備忘録としてブログ作成
Ruby、Ruby on Railsをメインに独学
数ヶ月、仕事やら何やらバタバタしてた疎かになっていたけど、また継続して勉強を進めていく
システムアップデート
Rails、6.0〜になってたの知らなかった。。
さっそくアップデートしてローカルサーバーで起動したらエラー。
すぐさまQiitaで検索、ありがたいことに同じようなエラーが出た方の記事で無事解決
環境構築してたらあっという間に時間が過ぎる
バージョンチェック
$ ruby -v
$ rails -v
ローカル環境起動
$ rails s
※終了はctl + c
ブラウザでhttp://localhost:3000/にアクセスで確認
超基本的なことを記述して頭を整理
progateで一通りやったところで中断してしまってたから基本をおさらいして、まずはアプリ作ってみよう