Ruby on Rails Tutorial (28)
朝練メモ。app/views/layout 配下確認します。
とりあえず application.html.erb から。一つづつ掘ります。とりあえず列挙から。head な記述が以下ですね。
<!DOCTYPE html> <html> <head> <title><%= full_title(yield(:title)) %></title> <%= stylesheet_link_tag "application", media: "all" %> <%= javascript_include_tag "application" %> <%= csrf_meta_tags %> <%= render 'layouts/shim' %> </head>
- full_title について確認
- stylesheet_link_tag について確認
- 引数の "application" とか option な引数とか
- javascript_include_tag について確認
- csrf_meta_tags について確認
- _shim.html.erb はスルー
あるいは body な記述が以下。
<body> <%= render 'layouts/header' %> <div class="container"> <% flash.each do |key, value| %> <%= content_tag(:div, value, class: "alert alert-#{key}") %> <% end %> <%= yield %> <%= render 'layouts/footer' %> <%= debug(params) if Rails.env.development? %> </div> </body> </html>
- _header.html.erb 確認
- flash.each.do な部分も確認のこと
- _footer.html.erb 確認
- debug な部分も確認のこと
ということで上から順に確認開始。
full_title について確認
どうもこのあたりはテキストの Chapter 5 のあたりな模様。これって自前で定義したのかなぁ。探してみると Chapter 4 で云々してますね。
(yield(:title)) というソレはそれぞれの partial の先頭で
<% provide(:title, 'About Us') %>
という形で設定してます。ええと、http://guides.rubyonrails.org/layouts_and_rendering.html を確認したところでは、content_for と対応して云々な記載がありますね。
ちなみに Chapter 3 Mostly static pages では
The code
<% provide(:title, 'Home') %>indicates using <% ... %> that Rails should call the provide function and associate the string ’Home’ with the label :title.14 Then, in the title, we use the closely related notation <%= ... %> to insert the title into the template using Ruby’s yield function:15
<title>Ruby on Rails Tutorial Sample App | <%= yield(:title) %></title>
Chapter 3 Mostly static pages より引用
という記述がありますね。
stylesheet_link_tag について確認
以下を参照しつつ。
ということは以下は
<%= stylesheet_link_tag "application", media: "all" %>
こんなカンジに変換されるのかな。
<link href="/stylesheets/application.css" media="all" rel="stylesheet" type="text/css" />
これ、全部が、なのかなむむむ、と言いつつ以下なドキュメントを発見。
なんか色々凄いな。
時間切れ
現実トウヒ対応で追記があるかもしれません (を
javascript_include_tag について確認
app/assets/javascripts/application.js は以下な模様 (一部のみ)。
//= require jquery //= require jquery_ujs //= require bootstrap //= require_tree .
これはルール的に stylesheet のソレと同様、なのかどうか。Gemfile に
gem 'jquery-rails', '2.0.2'
つーソレがあるんですが、一体これは、って言いつつ色々確認してたら ~/.rbenv 配下の jquery-rails-2.0.2/vendor/assets/javascripts 配下に居ますね。おそらくこれが云々されているということにしておきます。
つうか、以前は bundle install なソレって vendor 配下に、って思っていたのですが最近はそーではないのね。
csrf_meta_tags について確認
以下なカンジに変換されている模様。
<meta content="authenticity_token" name="csrf-param" /> <meta content="CRfHVnuowm8BNu6ZlOoSmzhM2XOhEAJo9Wf9wqTWlWA=" name="csrf-token" />
csrf 対策、とのこと。