概要
- webサイトの作成はRailsを使ってきた。
- 今年はHTML、CSSを学び、UIを作るようになった。
- vue/nuxtを学んでから、開発の仕方が変わった
Webpack
- Rails本来のview作成はerb形式。slimで書くのが普通らしい
- Rails 5.2からWebpackをサポートし、vueを使ってHTMLを作成できるようになった。知らんけど。
- viewsにはjavascriptを参照する記述のみ。実際の中身はjavascriptディレクトリに作成する
やり方
- Qiitaにわかりやすいチュートリアルがあるので、それを参考にするのが良い。
- vue側はvue CLIを使ったほうが開発が捗る。vue CLIである程度完成させてから、railsのjavascriptにコピペするような方法で作成した。
欠点
- 何も設定せずに開発すると、vueを更新した後にrails sを立ち上げなおす必要がある。
- vue-routerを使っていると、ホットリロードした時にルーティングエラーがでてしまう。
サーバー側とフロント側を分離して開発
- railsはサーバーサイドのみに特化し、フロントはvueで作成する。
- サーバーとフロントの切り分け設計ができるようになった。(APIを意識する)
- エラーを見つけやすくなり、開発効率アップした
- DBはfirebaseに移行(それまではpostgreSQLを使っていた)
今年使い方を学んだgem
Rails
active admin
- 管理者画面を作成できる
- Railsではデータを作成する時に、コンソールやseedでデータ作成できるが、active adminを使えば画面上で編集できる
- UIはhtmlテンプレートではない形式で作成されている。そのため、管理者画面にマップとか入れたいと思っても実際無理。
- firebase storageを使うようになってから使わなくなった。
devise
- Railsでログイン機能を作るにあたってのデファクトスタンダード
- session云々やpassword暗号化を良しなに実装してくれる(便利過ぎてsession云々を忘れるくらい)
- バックとフロントを切り分けて開発するようになってから、ヘルパーメソッドを使えなくなった。
- firebase authを使うようになって不要になった。
active record
- Railsで画像をアップしたりする時に使うgem
- erbでviewを作成するなら、恩恵を存分に受けられる。(controllerだけでURLから画像を取得することもできる)
- active recordは本来の使い方をすれば便利だろうと思う反面、本来の使い方以外がしにくい(どこで何がどう動いているのか把握しにくい)
- 画像ファイルのアップロードなら、carrierwaveのほうがどこで何を処理しているのかがわかりやすい
miniMagic
- Railsで画像を加工・編集するためのgem
- 参考文献が多くないため、最低限の使い方しかわからない
- 処理に時間がかかる。LINE Messangerで使おうとしたが、処理スピードが遅く、まともに使えなかった。
- 画像編集はjavascriptで行い、firestorageに画像ファイルを保存するような設計にしたため、サーバー側で画像を作成してフロント側に送るようなことがなくなった。
今後について
- RailsでAPIモードで開発するなら、Railsである必要性はないかな、、、
- node.jsでのexpressかpythonでのfastAPIを検討中
- とはいえ、rubyは好きな言語であるのでrubyとrailsを使うメリットがあるなら、使っていきたい。
- railsの活用法があれば教えてください。d