質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

2回答

2884閲覧

topページだけapplication.html.erbを適応させないようにしたいです。

sn.jr

総合スコア53

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/10/29 13:31

前提・実現したいこと

railsで簡単なsnsを作っているのですが、topページだけヘッダーを抜いて他のとは違うデザインにしたいです。その際に以下のようにしたらtopページにapplication.html.erbは反映されなくなったのですが、逆にtopページのデザインであるtop.scss(自分で作りました)が他のページに反映されてしまいました。

def top render:layout => "top" end

該当のソースコード

application

1<!DOCTYPE html> 2<html> 3 <head> 4 <title>Konpeki</title> 5 <%= csrf_meta_tags %> 6 <%= csp_meta_tag %> 7 8 <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 9 <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> 10 </head> 11 12 <body> 13 <header> 14 <div class="heading"> 15 <div class="header-left"> 16 <a href="/" class="Members">Members</a> 17 </div> 18 <div class="header-right"> 19 <% if session[:user_id]%> 20 21 <%=link_to("ユーザー一覧","/users/index") %> 22 <%=link_to("投稿する","/posts/new") %> 23 <%=link_to("投稿一覧","/posts/index") %> 24 <%=link_to("ログアウト","/logout",{method:"post"}) %> 25 <span><%=session[:user_id]%></span> 26 27 28 <% else%> 29 <div class="else"> 30 <%=link_to("ログイン","/login")%> 31 <%=link_to("新規登録","/signup")%> 32 <%=link_to("Membersとは","/")%> 33 </div> 34 <% end%> 35 36 </div> 37 </div> 38 </header> 39 <%= yield %> 40 </body> 41</html> 42
<!DOCTYPE html> <html> <head> <title>Top-Konpeki</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' %> </head> <div class="top-main"> <div class="top-main"> <h2 class="top-message"> Members </h2> <div class="lesson-icon"> <div class="circle"></div> <%=link_to("新規登録","/signup") %> </div> <div class="lesson-icon"> <div class="circle"></div> <%=link_to("ログイン","/") %> </div> </div> </div>

home

1// Place all the styles related to the home controller here. 2// They will automatically be included in application.css. 3// You can use Sass (SCSS) here: http://sass-lang.com/ 4 5 6ul, li{ 7 list-style-type: none; 8 9} 10 11a { 12 text-decoration: none; 13 } 14 15header{ 16 height: 65px; 17 width: 100%; 18 display: flex; 19 justify-content: space-between; 20 21} 22body{ 23 margin:0; 24 font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', メイリオ, Meiryo, 'MS Pゴシック', sans-serif; 25 background-color: #ffff; 26} 27 28 29.heading{ 30 width: 100%; 31 display: flex; 32 justify-content: space-between; 33 background-color: #97C4C4; 34} 35.header-left { 36 padding-left: 40px; 37 38} 39.Members{ 40 font-size: 44px; 41 color:#707070; 42} 43.header-right{ 44 padding-top: 20px; 45} 46.header-right a{ 47 padding-right: 40px; 48 color:#707070; 49 list-style: none; 50 font-size: 20px; 51} 52.top-message{ 53 font-size: 40px; 54} 55 56.top-wrapper{ 57 background-color: #ffff; 58 height: 100%; 59 padding-bottom: auto; 60}

top

1body{ 2 background-color:#97C4C4 ; 3} 4.top-main{ 5 background-color: #97C4C4; 6 width: 100%; 7 margin: 0; 8} 9.top-message{ 10 font-size: 40px; 11 text-align: center; 12 padding-top: 100px; 13} 14.circle{ 15 width: 80px; 16 height: 80px; 17 border-radius: 50%; 18 background-color: #FFFFFF; 19}

試したこと

既存の記事はかなり読んだのですが、自分に当てはまるものが見当たりませんでした。途中までは以下の記事などを参考にさせていただきました。(https://www.javadrive.jp/rails/template/index3.html)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

topページだけapplication.html.erbを適応させない

def top render 'top', layout: nil end

で実現可能です。'top',の部分は省略することも可能です。

投稿2019/10/30 00:41

Mugheart

総合スコア2342

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sn.jr

2019/10/30 01:46

ご回答ありがとうございます!入力してみたら確かにapplication.html.erbを適応させないことはできました!ただ真っ白になってしまいました。top.html.erbがうまく反映されていないような気がするのですが、どうしたらtopはtopのhtml/scssを反映させることができるでしょうか?ご教授いただけると幸いです!
Mugheart

2019/10/30 02:46

htmlに<body>が無いからでは?
sn.jr

2019/10/30 04:34

なるほど、付け足してみます!
guest

0

TopページをだすController に
layout 'theother_applidcation'
として下さい

投稿2019/10/29 13:36

編集2019/10/29 13:36
winterboum

総合スコア23329

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sn.jr

2019/10/29 22:28

ご回答ありがとうございます!やってみたのですが変化がみられないようです。 ``` class HomeController < ApplicationController layout 'theother_applidcation' def top render:layout => "top" end end ```
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問