チームに新しくジョインしてくれた方から聞かれたので、自分用にもまとめておく。
Ruby はオブジェクト指向言語なので、恐らく Java とか Python とかやってた人は割とすんなり入れると思う。ただ、PHPの人は戻り値周りとモジュール、 Mix-in あたりで最初躓くかもしれない。あと JavaScript (≠ ECMA, TypeScript) な人も、変数の扱いとかで微妙に躓くと思われる。
- 他言語からのRuby入門
- Ruby 2.4.0 リファレンスマニュアル <- 言語仕様、組み込みライブラリ、標準添付ライブラリ あたりはざっくり目を通しておくと良い
- Ruby 2.1.0リリース!注目の新機能を見てみましょう
- Ruby2.2の変更点と新機能の紹介
- サンプルコードでわかる!Ruby 2.3の主な新機能 - Qiita
- サンプルコードでわかる!Ruby 2.4の新機能と変更点 - Qiita
オライリーから出ているRubyの本に限らず、Rubyの本は若干古めのものが多いので、バージョン違いによる新機能はさらっと見ておくと幸せになれると思う。
Rails はなんだかんだ枯れてきているので、一通りチュートリアル読めば使えるようになると思う。むしろ鬼門は Rubygems の何を組み合わせて作るか、だったりする。 Rubygems を知っている量で Rails 開発の速度は驚くほど変わるし、車輪の再開発を免れるのでテストを書いたりする量もだいぶ減る。
- Rails 5: The Tour - YouTube <- 英語だけど、本家の動画で30分かからないのでざっくり見るとなんとなくやることがわかって良いと思う
- Getting Started with Rails <- 一通り Rails の設計思想とかを、実際にコードを書きながら学べるのでオススメ。ただし英語
- Ruby on Rails チュートリアル:実例を使って Rails を学ぼう <- 上記の日本語版のようなもの。英語だとわかりにくい部分の補足用にオススメ
- Ruby on Rails Guides (v5.0.2) <- 余裕があれば
- Ruby on Rails 5.0.2 RDoc <- さらに余裕があれば ActiveSupport, ActiveModel あたりのメソッドを一通り見ておくと良い
Rails の Gem は用途次第で何を使うか決めた方が良いと思うので、あくまでも参考程度に。 Ruby on Rails 初心者に贈る絶対に使いたくなるGem15選|ferret フェレット あたりも見ると良いかもしれない。
認証系の王道ですが、若干学習コストが高めなので、本当にここまでのものが必要なのかは検討した方が良いかと。ただし、後から入れることを検討しているのであれば最初から入れた方が楽。
- GitHub - plataformatec/devise: Flexible authentication solution for Rails with Warden.
- GitHub - scambra/devise_invitable: An invitation strategy for devise
- GitHub - CanCanCommunity/cancancan: The authorization Gem for Ruby on Rails.
RSpec 派はとりあえず入れておけば良いと思う。
- GitHub - rspec/rspec-rails: RSpec for Rails-3+
- GitHub - thoughtbot/factory_girl_rails: Factory Girl ♥ Rails
- GitHub - colszowka/simplecov: Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites
- GitHub - stevenosloan/slack-notifier: A simple wrapper for posting to slack channels
Kaminari はもはやページングのデファクトスタンダードです。デザイナーさんのこだわりによってはなかなかエグいページングのデザインを渡される事があるので Kaminari でそこまで工数をかけずにできる範囲は知っておいた方が良いです。(エグいやつもできなくはないけど割と大変だと思います)
- GitHub - kaminari/kaminari: ⚡ A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for Ruby webapps
- GitHub - twbs/bootstrap-sass: Official Sass port of Bootstrap 2 and 3.
- GitHub - slim-template/slim-rails: Slim templates generator for Rails 3, 4 and 5
HTMLメール送ったりするのをイチイチSMTPサーバー噛ませて、ってするのはとても面倒なので入れておくと良い。ほとんどのRailsアプリではメール送るタイミングが発生すると思うので是非。
- GitHub - fphilipe/premailer-rails: CSS styled emails without the hassle.
- GitHub - ryanb/letter_opener: Preview mail in the browser instead of sending.
ファイルアップロードは paperclip 含めていくつかあるけれど、恐らく一番簡単なのは paperclip だと思われる。ただし、これも用途次第なので、合わないなと思ったら別の Gem も検討した方が良い。
Excelの呪縛から逃れられない時のために。 Hashie は Excel 関係なくインストールしておくと割と便利。
- GitHub - zdavatz/spreadsheet: The Ruby Spreadsheet by ywesee GmbH
- GitHub - roo-rb/roo: Roo provides an interface to spreadsheets of several sorts.
- GitHub - intridea/hashie: Hashie is a collection of classes and mixins that make hashes more powerful.
- GitHub - aws/aws-sdk-ruby: The official AWS SDK for Ruby.
- GitHub - airblade/paper_trail: Track changes to your models’ data. Good for auditing or versioning.
デフォルトでインストールされるけれど Turbolinks は割と Rails でハマる人が多いので読んでおくと幸せになれると思います。