Railsチュートリアル第5章の内容です。
画像のように表示させたいのですが、application.html.erbが適用されず、static_pagesのhome.html.erbしか表示されません。
![イ
rails s によって起動させた自分の表示内容(localhost:3000)
application.html.erbの記述 <!DOCTYPE html> <html> <head> <title><%= full_title(yield(:title)) %></title> <%= csrf_meta_tags %> <%= csp_meta_tag %> <%= stylesheet_link_tag 'application', media: 'all','data-turbolinks-track': 'reload' %> <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> <!--[if lt IE 9]> <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/r29/html5.min.js"> </script> <![endif]--> </head> <body> <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 "Help", '#' %></li> <li><%= link_to "Log in", '#' %></li> </ul> </nav> </div> </header> <div class="container"> <%= yield %> </div> </body> </html>
home.html.erbの記述 <div class="center jumbotron"> <h1>Welcome to the Sample App</h1> <h2> This is the home page for the <a href="https://railstutorial.jp/">Ruby on Rails Tutorial</a> sample application. </h2> <%= link_to "Sign up now!", '#', class: "btn btn-lg btn-primary" %> </div> <%= link_to image_tag("rails.svg", alt: "Rails logo", width: "200px"), "https://rubyonrails.org/" %>
application_controller.rbの記述 class ApplicationController < ActionController::Base def hello render html: "hello" end end
routes.rbの記述 Rails.application.routes.draw do root 'static_pages#home' get 'static_pages/home' get 'static_pages/help' get 'static_pages/about' end
static_pages_contoroller.rbの内容です
やってみたこと
・application_controller.rbのrender の記述の部分にlayout:trueを指定して見ると適用されるという記述を見て書きましたが変わらずでした。
def hello render html: "hello",layout:true←この部分 end
・Railsチュートリアルの5章までを見直して、ファイルの記述ミスがないかなどをしらべました。(ファイルの理解が不十分なところがあるため、よくないと知りつつファイルをコピーしています)
・Rails application.html.erb 適用されないで似たような記事をいくつかみましたが改善できませんでした。
・rails application.html.erbを検索して役割を再確認
・rails html.erb 適用させたいでなにか出てこないか検索→良いサイト見つけられず
自分が原因だと思うこと
・layoutを指定しない限りデフォルトでapplication.html.erbが適用され、 <%= yield %>の部分にアクションによってviewsファイルのそれぞれの内容が入るという認識なので(間違っていたら指摘いただければ幸いです)、デフォルトがstatic_pagesのhome.html.erbになっている??
今回はじめての質問なんですが、次からはこうしたほうがいい等アドバイスがありましたら、参考して改善していきたいので、言っていただければありがたいです。
回答3件
あなたの回答
tips
プレビュー