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

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

ただいまの
回答率

90.40%

  • Ruby on Rails

    9282questions

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

partialがなぜか2回読み込まれる

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 758

hrc

score 44

Railsのアプリを作成しています。条件によってGoogleMapのJSを表示させるようにテンプレートをPatialにして出し分けしています。

Viewのapplication.html.slimはこちらです。ここのif defined?(@temp)が該当箇所です。

doctype 5
html(lang="en")
  head
    meta(charset="utf-8")
    meta(http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1")
    meta(name="viewport" content="width=device-width, initial-scale=1.0")
    title= content_for?(:title) ? yield(:title) : "vegewel"
    = csrf_meta_tags
    / Le HTML5 shim, for IE6-8 support of HTML elements
    /[if lt IE 9]
      = javascript_include_tag "http://html5shim.googlecode.com/svn/trunk/html5.js"
    = yield(:page_stylesheet) if content_for?(:page_stylesheet)
    = stylesheet_link_tag "flatly", :media => "all"
    = javascript_include_tag "application"
    = if defined?(@temp)
      = render :partial => @temp + '.html'
  body

    nav.navbar.navbar-default.navbar-fixed-top
      .container-fluid
        .navbar-header
          button.navbar-toggle.collapsed data-target="#navbarEexample2" data-toggle="collapse" type="button"
            span.sr-only Toggle navigation
            span.icon-bar
            span.icon-bar
            span.icon-bar
          a.navbar-brand href="/"
            img alt="Vegewel" src="/logo4.png" style=("height: 30px;")
        #navbarEexample2.collapse.navbar-collapse
          ul.nav.navbar-nav
            li
              = link_to I18n.t('frontpage_by_area'), (url_for controller:'/area')
            li
              = link_to I18n.t('frontpage_by_restaurant'), (url_for controller:'/restaurant')
            li
              = link_to I18n.t('frontpage_by_menu'), (url_for controller:'/menu')
            li
              = link_to I18n.t('frontpage_by_genre'), (url_for controller:'/genre')
            li
              = link_to I18n.t('frontpage_by_restraunttype'), (url_for controller:'/restaurant_type' )
            p.navbar-text
              = link_to 'JP', "/ja"
              |  | 
              = link_to 'EN', "/en"

    h3 aaa
    - if user_signed_in?
      |  Logged in as
      strong
        = current_user.name
      | .
      = link_to 'Edit profile', edit_user_registration_path, :class => 'navbar-link'
      |  |

      |  |
      = link_to "Logout", destroy_user_session_path, :method => :delete, :class => 'navbar-link'
    - else
      = link_to "Sign up", new_user_registration_path, :class => 'navbar-link'
      |  |
      = link_to "Login", new_user_session_path, :class => 'navbar-link'
    - if notice.present?
      p.notice.alert.alert-info
        = notice
    - if alert.present?
      p.alert.alert-warning
        = alert
    = yield
    /!
      | Javascripts
      | \==================================================
    /! Placed at the end of the document so the pages load faster
    = javascript_include_tag "flatly"
    = yield(:page_javascript) if content_for?(:page_javascript)

  footer

呼ばれているテンプレートがこちらです。

head
    meta charset="utf-8"
    meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"
    meta name="viewport" content="width=device-width, initial-scale=1.0"
    title= content_for?(:title) ? yield(:title) : "Vegewel"
    = csrf_meta_tags
    = stylesheet_link_tag "application", :media => "all"
    = favicon_link_tag 'apple-touch-icon-144x144-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '144x144'
    = favicon_link_tag 'apple-touch-icon-114x114-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '114x114'
    = favicon_link_tag 'apple-touch-icon-72x72-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '72x72'
    = favicon_link_tag 'apple-touch-icon-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png'
    = favicon_link_tag 'favicon.ico', :rel => 'shortcut icon'
    = javascript_include_tag "application"

    script src="//maps.google.com/maps/api/js?v=3.23&key=AIzaSyCgBL4ep6_BcDS3ffBf9Tz5ZTHaaZ4Y3bg"
    script src="//cdn.rawgit.com/mahnunchik/markerclustererplus/master/dist/markerclusterer.min.js"
    script src='//cdn.rawgit.com/printercu/google-maps-utility-library-v3-read-only/master/infobox/src/infobox_packed.js'

こちらを表示させると以下のようになぜか2度同じ箇所を表示してしまいます。
何が問題なのでしょうか

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta content="IE=Edge,chrome=1" http-equiv="X-UA-Compatible" />
    <meta content="width=device-width, initial-scale=1.0" name="viewport" />
    <title>vegewel</title><meta name="csrf-param" content="authenticity_token" />
    <meta name="csrf-token" content="fyaNxXHsPj7jBWtVbIi6mbRSwJmnrvBcClkkgn3AXtfQZBUXJzbsGFIPRHzaiAkn+t4mw70Ax8Fb0soEqpwBwA==" /><!--[if lt IE 9]><script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]--><link rel="stylesheet" media="all" href="/assets/flatly.self-7937be050bd767e6138130b081ab02adee94bf533a6c9cf8c78d0540fc985b2b.css?body=1" />
    <link rel="stylesheet" media="all" href="/assets/flatly/loader.self-a67484627247fa148f9180aaa7dd4dc2ea098f52134ffecede7a0913a369b732.css?body=1" />
・・・
    <script src="/assets/gmaps/google/objects/polyline.self-d6d7caf58094ef9b48b3e93abdcc0f43c6b3fb204c882f4613577480cbe5d857.js?body=1"></script>
    <script src="/assets/gmaps/google/primitives.self-5b8a3a670839d76c06f9877827daa0d739b27f8d6ebd346d7fc6006819755e65.js?body=1"></script>
    <script src="/assets/gmaps/google.self-877aef30ae1b040ab8a3aba4e3e309a11d7f2612f44dde450b5c157aa5f95c05.js?body=1"></script>
    <script src="/assets/application.self-44dc72337fbefc4f8c73fc8781b922cf9e4f99f8d068e6563c3820851d9390f6.js?body=1"></script>
    <script src="//maps.google.com/maps/api/js?v=3.23&amp;key=XXX"></script>
    <script src="//cdn.rawgit.com/mahnunchik/markerclustererplus/master/dist/markerclusterer.min.js"></script>
    <script src="//cdn.rawgit.com/printercu/google-maps-utility-library-v3-read-only/master/infobox/src/infobox_packed.js"></script>
    <script>
      jQuery(function(){

          handler = Gmaps.build('Google');
          handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
          markers = handler.addMarkers( [{"lat":"35.6626515","lng":"139.71073979","infowindow":"Muffin\u0026Coffee 8ablish","title":"本日のマフィン"}]);
          handler.bounds.extendWith(markers);
          handler.fitMapToBounds();
          handler.getMap().setZoom(15);
          });
      });
    </script>
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8" />
        <meta content="IE=Edge,chrome=1" http-equiv="X-UA-Compatible" />
        <meta content="width=device-width, initial-scale=1.0" name="viewport" />
        <title>vegewel</title><meta name="csrf-param" content="authenticity_token" />
        <meta name="csrf-token" content="fyaNxXHsPj7jBWtVbIi6mbRSwJmnrvBcClkkgn3AXtfQZBUXJzbsGFIPRHzaiAkn+t4mw70Ax8Fb0soEqpwBwA==" /><!--[if lt IE 9]><script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]--><link rel="stylesheet" media="all" href="/assets/flatly.self-7937be050bd767e6138130b081ab02adee94bf533a6c9cf8c78d0540fc985b2b.css?body=1" />
        <link rel="stylesheet" media="all" href="/assets/flatly/loader.self-a67484627247fa148f9180aaa7dd4dc2ea098f52134ffecede7a0913a369b732.css?body=1" />
        <link rel="stylesheet" media="all" href="/assets/flatly/bootswatch.self-42ba6bdca4f2dac34d17a8b01f0788d4c9921868e9abc2998138b7286e6dab21.css?body=1" /><script src="/assets/jquery.self-660adc51e0224b731d29f575a6f1ec167ba08ad06ed5deca4f1e8654c135bf4c.js?body=1"></script>
・・・
        <script src="/assets/gmaps/google/objects/polyline.self-d6d7caf58094ef9b48b3e93abdcc0f43c6b3fb204c882f4613577480cbe5d857.js?body=1"></script>
        <script src="/assets/gmaps/google/primitives.self-5b8a3a670839d76c06f9877827daa0d739b27f8d6ebd346d7fc6006819755e65.js?body=1"></script>
        <script src="/assets/gmaps/google.self-877aef30ae1b040ab8a3aba4e3e309a11d7f2612f44dde450b5c157aa5f95c05.js?body=1"></script>
        <script src="/assets/application.self-44dc72337fbefc4f8c73fc8781b922cf9e4f99f8d068e6563c3820851d9390f6.js?body=1"></script>
        <script src="//maps.google.com/maps/api/js?v=3.23&amp;key=XXX"></script>
        <script src="//cdn.rawgit.com/mahnunchik/markerclustererplus/master/dist/markerclusterer.min.js"></script>
        <script src="//cdn.rawgit.com/printercu/google-maps-utility-library-v3-read-only/master/infobox/src/infobox_packed.js"></script>
        <script>
          jQuery(function(){

              handler = Gmaps.build('Google');
              handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
              markers = handler.addMarkers( [{"lat":"35.6626515","lng":"139.71073979","infowindow":"Muffin\u0026Coffee 8ablish","title":"本日のマフィン"}]);
              handler.bounds.extendWith(markers);
              handler.fitMapToBounds();
              handler.getMap().setZoom(15);
              });
          });
        </script>
  </head>

何が問題なのでしょうか?どうかよろしくお願いしますどうかよろしくお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

失礼しました。
= if defined?(@temp)
ではなく

  • if defined?(@temp)
    でした。slimの書き方の問題でした。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.40%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Ruby on Rails

    9282questions

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