ブログアプリ②(機能を決めよう&gemをインストールしよう)

アプリの土台は作ったので早速gemを入れるぜ!

と思ったけど、カリキュラムで使ったgemを考えなしに入れるのは下策すぎるので、まずは載せたい機能を固めることにしたよ

ていうか作り始める前に設計しなさいよ勢いで始めるんだからーもー

つくる

つくりたい

  • 記事にコメントする
  • 記事に絵文字を投げる
  • アプリ内検索機能

で、これを作るために現時点で追加が必要そうなgemはこの辺かしら

Gemfile

group :development, :test do
  gem 'pry-rails'
end

gem 'font-awesome-rails'
gem 'haml-rails'
gem 'jquery-rails'

ところでこのgem達なにしてるの

font-awesome-rails

シンプルだけどいけてるアイコンを使うために必要

デザインを統一すると見やすい画面になるよね

fontawesome.com

haml-rails

本来erb(htmlだけどrailsのコードも入れられる)で書くビューをhamlで書くために必要

hamlは慣れるとhtmlより書きやすいし見やすい

www.sglabs.jp

Railsのビューのテンプレートエンジンは、デフォルトでerbが適用されます。

しかし、hamlやslimを用いた方が、コードが見やすく、綺麗に書けそうです。

~~~

Railsのジェネレータが生成するビューテンプレートをhamlに対応させるために、haml-railsを使用します。

jquery-rails

railsでjQuaryを使うために必要

javascriptをさらに使いやすくしたのがjQuaryなので、これに頼り切りというのは本当は避けたい。後ろでどんな処理が動いてるか分からなくなるから)

pry-rails

ソースコードbinding.pryを挟むと、処理をそこで一時中断できるようになる

データが上手く渡せないときによく使う


必要そうなgemをGemfileに記述したので、インストールするよ

$ bundle install

よしよし

Bundle complete! 20 Gemfile dependencies, 82 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

これでいつでもコードを書き始められるね

でも、そもそもデータベースの設計やビューのデザインを決めてないのでだめです

次は(本来真っ先にやるべきだった)設計周りをやろう

ブログアプリ①(雛形をつくろう)

何はともあれまずは土台を作らねば

ターミナルでコマンドを打つ

$ rails new myblog -d mysql

まあまだ始めたばかりですし、うまくいくでしょ

create  
create  README.md
create  Rakefile
create  config.ru
create  .gitignore
create  Gemfile
run  git init from "."
Initialized empty Git repository in /Users/mari/projects/myblog/.git/
create  app
・・・

あまり気にしたことなかったけど、オプションをつけなければbundle installもやってくれるのね

run  bundle install

ふぁっ!?

Ruby Sass is deprecated and will be unmaintained as of 26 March 2019.

* If you use Sass as a command-line tool, we recommend using Dart Sass, the new
  primary implementation: https://sass-lang.com/install

* If you use Sass as a plug-in for a Ruby web framework, we recommend using the
  sassc gem: https://github.com/sass/sassc-ruby#readme

* For more details, please refer to the Sass blog:
  http://sass.logdown.com/posts/7081811

いでよモノリンガルの味方google翻訳!てってれー

翻訳を自分なりに要約すると

ということらしい。まじか

スクールのカリキュラムでアプリを作ったときはsass-railsのgemを使ったんだよね

はてどうしよう。教えてえらいひと

qiita.com

libsassは最新のsassの機能が全て使えるわけではない点に注意が必要です。

最新機能に依存していないのだったら、sassc-railsに移行するのはありだと思います。

こちらの記事を読む限りsasscにしてもさほど影響は無さそうに見える

ただスクールでチーム開発をした時はsassで進めたし、期間は終わったものの任意で追加実装したいし

なので環境は変えずsassのままでやる

あとは最後にでていたこのコマンド

run  bundle exec spring binstub --all
* bin/rake: spring inserted
* bin/rails: spring inserted

springってなーに。教えてすごいひと

ruby-rails.hatenadiary.com

Springとは、Rails4.1から標準で付属するようになったアプリケーションプリローダーです。

Rails内では様々なライブラリのロードなどの前処理が行われるので、コマンドを実行するための待ち時間がかかってしまいます。

事前にバックグラウンドでライブラリをロードしておくことで、その待ち時間を短くするものがアプリケーションプリローダーです。

アプリケーションを動かすために必要なあれこれを事前に読み込んでおくことで結果として処理を速くしているということかな

何も知らなくても環境を整えてくれるって便利ねぇ

これで手元の疑問はすっきりしたし土台はできたので、次は必要なgemを導入しよう