##レイアウト
###bootstrap
containerとcontainer_fluidの違い
yield
ページごとの内容を挿入する
##link_to
<%= link_to "表示文字列”,"パス",class:"class名" %>
##link_to image_tag
<%= link_to image_tag("画像名",
alt:"alt名" %>
app/assets/image/にあるところから画像を探して、表示してくれる。
mv コマンド
bootstrap
gemgileに
gem 'bootstrap-sass', '3.3.7'を追加
$touch app/assets/stylesheets/custom.scss
でカスタムCSSを作り、そこへcssを記載する。
そこへ
@import "bootstrap-sprockets";
@import "bootstrap";
を記載する。
##CSSを追加
###remとem
@@@@@@@
letter-spacing
text-transform
##パーシャル(partial)
<!DOCTYPE html>
<html>
<head>
<title><%= full_title(yield(:title)) %></title>
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
ここから
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/r29/html5.min.js">
</script>
<![endif]-->
ここまでを
↓
<%= render 'layouts/shim' %>
に置き換え、切り出す。
</head>
ここから
<header class="navbar navbar-fixed-top navbar-inverse">
<div class="container">
<%= link_to "sample app","#",id:"logo" %>
<nav>
<ul class ="nav navbar-nav navbar-right">
<li><%= link_to "Home",'#' %></li>
<li><%= link_to "About",'#' %></li>
<li><%= link_to "Log in",'#' %></li>
</ul>
</nav>
</div>
</header>
ここまでを
↓
<%= render 'layouts/header' %>
に置き換え、切り出す
<body>
<div class = "container">
<%= yield %>
</div>
</body>
</html>
切り出したものを
layouts/_shim.html.erb
layouts/_header.html.erb
のファイルに記載する。
アセットパイプライン
三つのassetsがある
1 app/assets 今あるアプリケーション固有のアセット
2 lib/assets 自分の開発チームによって作られたライブラリ用のアセット
3 vendor/assets サードパーティのアセット
##マニフェストファイル
上記のアセットをどのように一つにまとめるかを指示できる
sass
このあと、progateでやろう。
ルートURL
root_pathは 「/」を返す。
root_urlは「http://www.example.com/」(
完全なurl)を返す
HTTPの標準では、リダイレクトの時は、完全なurlが求められるが、path書式でも動く。
get 'static_page/help'を
get '/help' ,to: 'static_pages#help’に変換すると
テストとviewsで名前付きurl(
help_path)が使えるようになる。
テストで使うルートの書式を名前付きルートに変えてみる。
<%= link_to "About", 'about_path' %>
###注意!
名前ルートを''で囲わないこと。
統合テスト
アプリケーションにアクセスするところから
隅々までテストする
rails g controllerで自動作成されたテストと内容は同じで、
require 'test_helper'
class SiteLayoutTest < ActionDispatch::IntegrationTest
# test "the truth" do
# assert true
# end
end
actionDispatch::IntegrationTestを継承したクラスが記載されている。
単体テスト、機能テスト、統合テストと
様々なテストがある。
##調べる
各テストのクラスがどんなクラスを継承しているか確認する
継承したクラスによって、意味や動きはどう変わるのか
何をrails newしたら、どのtestファイルが作成されるのかも整理する