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

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

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

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

Q&A

1回答

1685閲覧

トップページのみheader(navbar)を表示したくない

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 5

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

0グッド

0クリップ

投稿2018/11/13 14:00

編集2018/11/13 16:05

ruby2.5.1 rails5

困っていること

トップページのみ、navbarを表示せずに上詰めしたいと思っています。
gem deviseのログイン画面をトップページにしているためcontrollerにdisplay:none;を加えることが難しく悩んでいます。

該当ソースコード

application.html.erb

<!DOCTYPE html> <html> <head> <%= favicon_link_tag %> <title><%= full_title(yield(:title)) %></title> <%= csrf_meta_tags %> <%= csp_meta_tag %> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> <script> $('.dropdown-toggle').dropdown() </script> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> </head> <body> <nav id="mainNav" class="navbar navbar-default navbar-fixed-top"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <% if user_signed_in? %> <%= link_to "マイページ", user_path(current_user), class:"navbar-brand" %> <% else %> <%= link_to image_tag('logo1.png',:size => '160x50'), user_session_path %> <% end %> </div> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav navbar-right"> <% if user_signed_in? %> <li><%= link_to "一覧画面", rooms_path %></li> <li><%= link_to "ユーザ一覧", users_path %></li> <li><%= link_to "ログアウト", destroy_user_session_path, :method => :delete %></li> <% else %> <% end %> </ul> </div> </div> </nav> <div class="main-page"> <%= yield %> </div> </body> <%= render 'layouts/footer' %> </html>

試してみたこと

.body.logged-in #mainNav{ display:none; }

というのは簡単そうで素敵でしたが、うまく動作しませんでした。

それにログイン前のページとして

・トップページ(ログイン画面)
・アカウント登録画面
・サイト説明のページ

の3つがあり、できればトップページのみnavbarを消したいと思っています。
そんな都合のことはできるのでしょうか?

ヘルパーでnavbarを作成して、application.html.erbからnavbarを削除、トップページ以外にヘルパーを導入すればうまくいきそうですがrails的にそれは避けたいです。

toppage
views/devise/sessions/new.html.erb

良い方法があれば教えて頂きたいです。

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

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

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

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

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

guest

回答1

0

はっきりいいます。

自分でまだ解決できるかもと思っているなら、それを実践して、それでも無理なら質問しても良いと思いますが、それをしない前に質問するのは良くない(ご自分のために)と思います。

さて、質問の内容ですが、トップページだけナビゲーションバーを出したくないなら、ページを完全に分断するか、もしくはJavaScriptを<body onload>イベントでコールして、
ruby側は<input type="hidden" id="page" name="page" value="[1]or[top]">のようにして、
JavaScriptで、
document.getById("page");
if(page="1"){
document.getElementById("navigate");
document.style.display="none";
}

のようにすればスマートとは言えないかもしれませんが、対処はできると思いますよ。

実証実験していないのでまだご不明な点があればコメントください。

投稿2018/11/14 08:04

phpsyoshinsya

総合スコア156

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問