Railsの会13日目「3章 test・まとめ / 4章関数作成」
今回の進捗です。\\\└('ω')┘////
注意 : 3.4.4 〜スタート。3.6(演習)〜 3.7.2 までは飛ばしてます。
agenda
- 復習
- helloアクション
- 3章のまとめ
- 第4章 ヘルパー
- 4章まとめ
1.復習
おさらいです!
/app/aprication.html.erb にhtml js とか記載される。
$ rails routes 受け取ったURLを認識、適切なコントローラ内にアクションで割り当てる。
よくデバッグ ・ルーティング作成 に使われる
⚠️そのままではRails環境を読み込むため遅い。
rails routes を高速にする方法
- pryとpry-rails gemがインストールされているなら、
rails console
を起動しておいてshow-routes
を実行- spring gemがインストールされているなら
spring rake routes
とすれば2度目以降から高速になる- dev環境が起動中ならhttp://localhost:3000/rails/infoを参照する (Rails 4)
2.helloアクション
ページを作るとき必ず設定しないといけない。
- ルート設定 [ config/routes.rb ]
get 'static_pages/home'
- ApplicationController [ app/controllers/static_pages_controller.rb ]
def hogehoge . . . end
おまけ $ ps aux grep spring
ps プロセスを表示
動作が遅い時に使う。Railsではテストが動かない時(テスト系)で使用する。
a 自分以外のユーザプロセス
u User名と開始時間
x 制御端末のないプロセス情報
ps ax システム上全てのプロセス表示
注 ps -aux はxという名前のuserが所有するすべてのプロセスを表示。
xというuserが存在しなければ、 ps auxというコマンドと解釈し警告する。
ps - コマンド (プログラム) の説明 - Linux コマンド集 一覧表
grep【コマンド】とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
spring railsのアプリケーション用プリローダ(待ち時間を視覚化したもの)。マイグレーション(依存しているアプリケーションを再利用して新しい環境に移行)するとき、railsを再起動しなくていいようにする。
springの特徴
・開発環境が高速になる
・springサーバが起動される。設定を監視、再ロードする。
・rails [console runner generate destroy ]と rakeが対象
・自動起動・終了される
・デフォルトではspringが使われないので、有効にする必要がある。
spring有効にする方法
rails newしたプロジェクト内で実行
$ bundle exec spring binstub --all
bin/springが新規追加され、bin/rails と bin/rakeにspringをloadするコードが追加。
Rails 4.1以降のコンソールコマンドは必ず bin/ を付けなきゃいけないの? - Qiita
3. 3章まとめ
- gemインストール、リモートへpush、プロダクション(本番)環境を行った。
- コントローラを新規作成するrailsコマンドは[ generate /controller / contorollerName]
- コントローラー名はキャメルケース
- アクション名はスネークケース
- 新しいルーティングは config/routes.rb ファイルで定義する。
- 自動化テスト作成(テスト駆動開発 レッド、グリーン、リファクタリングサイクル)
- Railsレイアウトはアプリケーションページの共通部分をテンプレートに置くと重複させなくて済む。
おまけ エラーまとめ
1 引数の数が間違っている(呼び出しa とメソッゾの引数b) (a for b)
0 for 1
(1 個であるべきところに0 個来た)という内容になっている。
Rubyのエラーメッセージwrong number of arguments (a for b)の意味 - Qiita
2 xcode 古い! (Xcode 開いてupdateすればok)
Agreeing to the Xcode/iOS license... のエラーがでた時の対処法 - Qiita
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
第4章
4. ヘルパー
基本はviewの補助として使用する。
メディアタイプ Rubyの4つの概念
-
stylesheet_link_tag Rails組み込み関数。このことを(ヘルパーという)
-
カッコを使わない関数の呼出し
-
シンボル ソースでは文字列に見えるけど内部は整数として扱われる。例
my_name.object_id # => 8848520
-
ハッシュ 連想配列 RailsのHashの使い方
配列と同じく複数の他のオブジェクトを管理するために使うオブジェクト。
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
この行を変更します…!
<%= yield(:title) %> | Ruby on Rails Tutorial Sample App
これを下のように変更。
<% provide(:title, "Home") %>
ーーーーーーーーーーーーーーーーーーーーーーーーーー
provide関数とは
provideヘルパーでlayoutにパラメータを引き渡す
内容
layoutに動的にパラメータを引渡したいような場合に
provideヘルパーを利用します。呼び元
- yield(:key)呼び先
- provide(:key, value)
もしprovideを消去すると・・・
| Ruby on Rails Tutorial Sample App
と表示される。
上の行の「|」を消す!
リスト4.2:full_title
ヘルパーを定義するapp/helpers/application_helper.rbmodule ApplicationHelper # ページごとの完全なタイトルを返す def full_title(page_title = '') base_title = "Ruby on Rails Tutorial Sample App" if page_title.empty? base_title else page_title + " | " + base_title end end end
上記のコードを書いて
<title><%= yield(:title) %> | Ruby on Rails Tutorial Sample App</title>
を下記に変更
<title><%= full_title(yield(:title)) %></title>
その他にも application.html.erb に書かれている内容はけす(コードの重複をなくす)
static_pages / home.html.erb
static_pages / help.html.erb
static_pages / about.html.erb
これで完成()
5. 4章まとめ
今回行ったこと
- root / メインサイト get / サブサイト
- Hello アクション(root設定とメゾットの定義)
- ヘルパー 関数作成
宿題
基礎をもう一度。(toy_app)作成
http://railsdoc.com/rails_base