🚄

Bullet Trainを始めよう🚄️

2022/11/16に公開

Bullet Trainとは

Bullet TrainとはRuby on Rails上で動くSaaSのフレームワークです(Jumpstartみたいなもの)。
つまり、Railsを拡張してあるものなので、新規アプリを作った時点で以下の機能がもうすでについています。

  1. Deviseを使ってのユーザー登録・認証
  2. Sidekiq & Redisのバックエンド・ジョブの設定
  3. Jbuilderを使ってのAPI自動生成
  4. Webhookの自動生成

他にも機能がたくさんありますし、Pro版を買ったらStripeの決済処理の設定など、色んな便利なツールが使えます。
公式サイト
Bullet Trainの作成者:Andrew Culver氏
Discord

新規アプリを立ち上げると…

見ての通り、ログイン機能やTailwindのスタイルが実装してあります。
> rake bullet_train:themes:light:eject[任意のスタイル名]を使って、Bullet Trainの元のビューを自由自在に編集することもできます。

Super Scaffolding

普通のscaffoldだと、こう書きますよね:

> rails g scaffold Project title:string

これでProjectのモデル、ビュー、そしてテストなどが全部生成されます。
ただし、ネストされるモデルに対応してくれないし、例えばPageというモデルをネストしたい場合は、手動でフォームを編集しないといけないのでちょっと手間がかかりますよね。スタイルもついていません。

それでBullet TrainではSuper Scaffoldingという強力なコマンドを使うと、その手間を全部省いてれます:

# Projectモデルの作成
> rails g model Project team:references title:string
> bin/super-scaffold crud Project Team title:text_field
> rails db:migrate

# ProjectにネストされるPageモデルの作成
> rails g model Page project:references title:string
> bin/super-scaffold crud Page Project,Team title:text_field
> rails db:migrate

以上!これでPageProjectにネストされ、APIを含めてテストも準備してくれます。

Test Projectという新規Projectを作り、Showページに移った結果がこちらです。下の方を見たら、新規Pageが作れることを確認できます:

しかも、これを何層も深くネストできるのでこの辺りの開発過程が結構はやくなると思います。

他にも色々

Super Scaffoldingでは他の処理も実現できます:

  1. > bin/super-scaffold oauth-provider: GitHubやGoogleなどでログインができるように、モデルやビューなどを自動的に生成し設定してくれるオプションです。
  2. > bin/super-scaffold crud-field: もうすでに存在しているモデルに対して新しいカラムを追加し、ビューの中にスタイル付きの新属性を追加してくれるオプションです。

その他のオプションに関しては公式サイトを確認してみてください。

Discord

Discord(日本語・英語)もあるので気軽に入って話しましょう🎉️
ちなみに、ドキュメントやI18nの和訳がまだないので、翻訳に興味ある方はDiscordに入って伝えてくださったら、仕事があると思います✏️

おわりに

コミュニティーもいいですし、Railsのコミッターも開発チームに入っていますので信頼できるサービスだと思います。

是非Bullet Trainで楽しい開発の旅を送ってみてください🚄️

Discussion