試行錯誤顛末記録。 或いは日記的な何か。 Web技術寄りな雑記Blog
アキです。 以前、世界をフラフラしてました。 Webエンジニア。主戦場はRailsとVue.js。
Railsを使っていて、ある状態に当てはまらないときレコードを削除するdestroyを成功させたくないみたいなこと、あると思います。createするときのvalidationに対してdestroy時のvalidationというか。そんなときどうするか、という話です。
今までもテストや監視を紹介してきましたが今回は脆弱性をとりあげてみます。幸いにもRails用にBrakemanというGemで機械的に脆弱性診断を行えます。これさえやっておけば完璧と断言できるわけではありませんが、人の手でやるには限界があるので導入しておくにこしたことはありません。...
Sentryというエラー監視サービスがあります。少し前までsentry-ravenというGemで導入していましたが、sentry-ravenはメンテナンスモードに入り、変わりにsentry-ruby, sentry-railsを使うように案内されていました。 今回はそれをキャッ...
プロダクトが大きくなると当然modelも増えていき、それに伴いアソシエーションも増えたりして、テストの時に必要なデータを作るのが大変になってきます。 RailsとRSpecではFactoryBotというGemでテストデータを作るのがデファクトスタンダードですが、油断すると関連デ...
BulletというRailsでは広く使われているN+1検出用のGemがあります。N+1は起こらないにこしたことはないんですが、通常の設定ではViewの一部に警告されるだけで見落してしまいがちです。それをRSpec実行時にかけて、なおかつN+1が検出されたらテストをfailさせよう...
前回に引きつづきRailsのアプリケーションレイヤーでなんとかIPによるアクセス制限をかける方法の模索。今回はAuthrization(認可)用のGemであるPunditを使ったアプローチです。
わけあってRailsでIP制限できないものかといろいろやってみました。もちろんアプリケーションレイヤーではなくアクセス的にはもっと前のネットワークとかWebサーバーとかでやるほうが良いんですが、いろんな理由でそれができない場合、Railsでやってみたという話。
先日Railsでイチから個人開発を始めたんですが、CSSフレームワークとしてTailwind CSSを使ってみました。 その時得た導入方法の知見としばらく使ってみての感想。 ちなみに僕はHTMLとCSSはセマンティックに書くべし、というスタンスには賛同しています。つまり、これま...
最近新しくRailsプロジェクトを作って開発を始めることが業務でもプライベートでもあったので、せっかくの機会にRails newするときに使えるテンプレートをちゃんにと設定してみました。
マイクロブログサービスの代名詞ともいえるTwitterから脱中央集権として登場したOSS、MastodonはRailsで開発されています。自身のサーバーサイドエンジニアとして知見を増やすためにMastodonを立てみようと思いました。 最終的になんとか立てれたものの、かなりつま...
前回に引き続き今回も初学者向けRails備忘録です。 今回はDBをセットアップしたり、リセットしたりするときに使うコマンド編です。
普段RubyとRuby on Railsで開発していると「これどう違うんだっけ、どっち使うべきなんだっけ?」と思うことがそこそこあります。内容的には初心者向けですが備忘録がてら書き記しておくことにしました。 今回は値やレコードがある場合/ない場合で分岐するときに使うメソッドです...