Ruby on Rails自分用備忘録
Ruby on Railsの既存プロジェクトを引き継いだ。そもそもRubyもRailsも触ったことがなかったけど、フルスタックフレームワークって何ぞやってことは、概ねDjangoで理解してたし、Rubyみたいなモダン言語は別に勉強しなくても、まあなんとなく雰囲気でいけるんじゃん。言語よりフレームワークの使用を覚えるのが面倒臭かった。ほら、フルスタックフレームワークって設計者の癖がより色濃く出るじゃんね。んで、早速「ん?」ってなった箇所があったので、書き留めておこうと思う。なんでもかんでも、できることなら正確に理解した今日この頃。
どうやってcssを読み込めばいいんだろう
slim
からcss
を個別に読み込んでる感じ?とか思ったけど違った。slim
からcss
を呼び出してない。なのにcss
が反映されている。なんじゃこりゃ。んで、勉強して知った。Railsでは、というか、どうやら少なくともこのプロジェクトでは、View
のLayout
のapplication.html.slim
というところがあり、そこはいつも書くコードを自動化するためにあるらしくて、そこに下記のように書くと ...
= stylesheet_link_tag 'application', media: 'all'
アプリ全体で共有するcss
になるらしい。これはRailsの組み込み関数で、stylesheet_link_tag
(詳細はRails APIを参照) を使って、application.css.sass
をすべてのファイルで読み込んでいる。それで、application.css.sass
で、こんな風に、自分で独自のcssを追加した。
@import 'modules/invoice'
@import 'modules/slider-pro'
//独自に追加した
@import 'test_css/testcss'
んで、上記のように書いたら、独自に作ったcssが、全部のページに適応された。下記のように書けば、アプリ全体でボディの背景色が緑色になった。
body
background: green
でも、こういうやり方って普通なんだろうか。これじゃ、名前衝突が起きないのだろうか?名前衝突が起きないためには、普通はstylesheet_link_tag
をもう少しなんとか使って、application.css.sass
に、全部のcssを書いて、全てのcssを全てのファイルでシェアするのは、良いことなんだろうか。わからない、わからない、わからない。