Railsチュートリアルの続きです。前回はRailsコンソールでクラスやメソッドを実行しました。今回はBootstrapを使ってCSSスタイルを付けていきます。下層ページへのリンクのルーティングや統合テストも追加します。それではいきましょう!
【目次】
- ナビゲーションの追加
- bootstrap
- パーシャル
- アセットパイプライン
- sassの機能
- Contactページ追加
- ルーティング設定
- 統合テスト(Integration Test)
- ユーザー登録ページを作成
- 最後に
Ruby/Ruby on Railsを習得するためにやったこと まとめ
qiita.com
ナビゲーションの追加
app/views/layouts/application.html.erb
を修正
- headerタグを追加
- classにbootstrap向けのclass名をつける
link_to
ヘルパーでリンクを生成する(urlはひとまず#
)- メインコンテンツ
yield
をdivで囲う
headerのメニューが現れた!
- タイトルの下に
link_to
でリンクを追加(urlはひとまず#
) - classにbootstrap向けのclass名をつける
- 二つ目のリンク
link_to
にimage_tag
ヘルパーで画像パスを追加 app/assets/images/
ディレクトリにロゴ画像ファイルを追加- 画像ファイル名の
<long string>
で長いファイル名になる
メインにコンテンツの内容が変わり、ロゴ画像も表示された!
bootstrap
- gemファイルに
bootstrap-sass
を追加(bootstrapは標準だとlessのため) bundle install
を実行→bootstrapがインストールされるapp/assets/stylesheets/
ディレクトリにcustom.scss追加- custom.scssで
@import
でbootstrap-sprockets
とbootstrap
をインポート rails server
でRailsサーバーを再起動
homeにCSSスタイルが適用された!
- custom.scssにcssスタイルを追記
スタイルが適用される
パーシャル
ページ内の共通部分をパーシャル化する
<%= render 'layouts/header' %>
- headerタグがあった場所に上記を配置
- headerの内容を
/layouts/_header.html.erb
に移植 - headerは変わらず表示される
パーシャルのファイル名の頭に_
を付けるのはEJSと共通している
続いてフッターも追加する
<%= render 'layouts/footer' %>
- フッターを追加したい場所に上記を配置
- footerの内容を
/layouts/_fotter.html.erb
を記載 - custom.scssにfooterのcssスタイルを追記
フッターも表示された!
アセットパイプライン
- アセットパイプラインはCSSや画像などの制作と管理を強化する
- アセットディレクトリ、マニフェストファイル、プリプロセッサエンジンという機能がある
- アセットディレクトリ:
app
、lib
、vendor
ディレクトリにassets
ディレクトリがある - マニフェストファイル:静的ファイル(アセット)をどのように一つのファイルにまとめるかの指示
→app/assets/stylesheets/application.css
のコメントにある*= require_tree .
、*= require_self
など - プリプロセッサエンジン:
.erb
、.scss
などの拡張子で判断してプリプロセス(前処理)を実行する - アセットパイプラインによって本番環境ではCSSがapplication.cssにまとめられ最小化される
sassの機能
- sassのネスト設定を変更
- 使いまわされる色の値を変数化
$light-gray
のように頭に$
をつける
Contactページ追加
test/controllers/static_pages_controller_test.rb
にcontact
のテストをついか(rails test
実行→red)config/routes.rb
にcontact
のルートを追加app/controllers/static_pages_controller.rb
にcontact
のアクションを追加app/views/static_pages/contact.html.erb
にcontact
のビュー(タグ)を追加(rails test
実行→green)
ルーティング設定
config/routes.rb
のルーティングをget
、to:
で置き換える書き方に変更test/controllers/static_pages_controller_test.rb
にget root_path
などを追加app/views/layouts/
の_header.html.erb
、_footer.html.erb
のリンク設定を変更(#
からroot_path
など)
ヘッダー、フッターのリンクからページ遷移するようになった!
統合テスト(Integration Test)
- 統合テストを作成
$ rails generate integration_test site_layout
test/integration/site_layout_test.rb
にテストファイルが作られるassert_select "a[href=?]", about_path
などのテストを追加する
→aタグの?
にabout_path
のパス(/about
)を入れてリンクの存在をチェックする- リンクの統合テストを実行
$ rails test:integration
→Green - 全てのテストを実行
$ rails test
→Green
ユーザー登録ページを作成
- Userコントローラーを作成
$ rails generate controller Users new
config/routes.rb
に/signup
のルーティングを追加test/controllers/users_controller_test.rb
のテストをsignup_path
に修正app/views/static_pages/home.html.erb
のユーザー登録ページのリンクを修正(#
をsignup_path
に)app/views/users/new.html.erb
のtitle、タグを修正
トップページの「Sign up now!」リンクを押すとユーザー登録ページに遷移した!
最後に
ということで今回はbootstrapやsassを導入し、下層ページを作成し、リンクのルーティング設定、統合テストも追加しました。ようやく見た目が簡素じゃなくなってきました♪
次回、6章は「ユーザーのモデルを作成する」とのこと。モデルとはなんぞや、を理解していきたいと思います。それではまた!
Ruby/Ruby on Railsを習得するためにやったこと まとめ
qiita.com