carolinaのつぶやき

RubyやRails中心のアウトプットと趣味のあれこれ

【Rails】Rails × Slim × GoogleMapsAPI でmapがうまく表示されない…

今作っているオリジナルアプリでGoogleMapsAPIを使用して地図を表示させたくて、そこそこ奮闘したのでメモ。

以前上記の記事を参考にしてAPIを使用する練習をしたことがあり、今回もお世話になった。
私の環境だとerbではなくslimを使用しているので、上記の記事のコードをslim記法にする必要があり、そこで少々はまりました。

やったこと

安直にHTMLをslimに変換してくれる ERB 2 SLIM を使用して変換したコードをコピペしたところ、地図が表示されない…(デスヨネ)
実際に出力されたコードを見たところ、CSS部分がうまく変換できておらず地図にCSSが適用されていない状態だと分かった。
元記事にも記載があったけど、どうやらこれが原因だったみたい。 

解決策

考えたのは以下。
1. CSSファイルを作成してスタイルを記述する 
2. slim記法でスタイルを記述する 

前者は試したけどうまくいかず(小声) 
今回スタイル当てたいのmapだけだし、html.slim内に書いちゃおうと決めたはいいが、slim記法でCSSをどう書いたら良いのかわからなかったのでぐぐった。 
すると css: と書き始めたらええで!といった記事を見つけた。ちなみにJavascriptを書きたいときも javascript: って書けばいいっぽい。以下のような感じ。 

css:
  #map
    width: 600px;
    height: 600px;

これでいけるだろう!と画面リロードした。 Javascriptはちゃんとscriptタグで囲まれて出力されてる。けどCSSは相変わらず適用されていない。。 
なんでやー!!と思って他記事をさらに調べたら RailsでGoogleMapを表示させる(gem 'gmaps4rails'の使い方) - Qiita という記事にたどり着いた。 

#map style="width: 800px; height: 400px;"

そして記事内にあるこの記述で書いてみたら無事CSSが適用され、地図が表示された・・・ 
めでたしめでたし。 
Image from Gyazo

反省
  • slim記法に慣れていないところに、慣れていないAPIに関するコードをぶちこんだのでWコンボくらった。
  • 変換ツールは便利だけど参考に留めて出来る限り自分で書くこと。
  • slimを使用している記事が少ないので、検索して情報を得るまでに少々手こずった。
  • なぜ出来ないかを特定する事は慣れてきたが、なぜ出来るのか(出来るようになったのか)については理解がまだまだ浅く説明できない事が多い。。今回もなぜ解決したのかもう少し掘り下げて理解を深めたい。