Bullet Trainを始めよう🚄️
Bullet Trainとは
Bullet TrainとはRuby on Rails上で動くSaaSのフレームワークです(Jumpstartみたいなもの)。
つまり、Railsを拡張してあるものなので、新規アプリを作った時点で以下の機能がもうすでについています。
- Deviseを使ってのユーザー登録・認証
- Sidekiq & Redisのバックエンド・ジョブの設定
- Jbuilderを使ってのAPI自動生成
- 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
以上!これでPage
がProject
にネストされ、APIを含めてテストも準備してくれます。
Test Project
という新規Project
を作り、Showページに移った結果がこちらです。下の方を見たら、新規Pageが作れることを確認できます:
しかも、これを何層も深くネストできるのでこの辺りの開発過程が結構はやくなると思います。
他にも色々
Super Scaffoldingでは他の処理も実現できます:
-
> bin/super-scaffold oauth-provider
: GitHubやGoogleなどでログインができるように、モデルやビューなどを自動的に生成し設定してくれるオプションです。 -
> bin/super-scaffold crud-field
: もうすでに存在しているモデルに対して新しいカラムを追加し、ビューの中にスタイル付きの新属性を追加してくれるオプションです。
その他のオプションに関しては公式サイトを確認してみてください。
Discord
Discord(日本語・英語)もあるので気軽に入って話しましょう🎉️
ちなみに、ドキュメントやI18nの和訳がまだないので、翻訳に興味ある方はDiscordに入って伝えてくださったら、仕事があると思います✏️
おわりに
コミュニティーもいいですし、Railsのコミッターも開発チームに入っていますので信頼できるサービスだと思います。
是非Bullet Trainで楽しい開発の旅を送ってみてください🚄️
Discussion