タケユー・ウェブ株式会社のフィード

https://zenn.dev/p/takeyuwebinc

Ruby on Rails が得意なWebサービス受託開発会社です。 中小規模のWebサービスの新規開発の他、他の個人開発者などから引き継いで保守運用を行ったりしています。 新規開発、お手伝いや顧問、レガシーなRailsプロジェクトの保守など、ニーズにあわせて対応できます。ご相談

フィード

記事のアイキャッチ画像
カスタムバリデーションはカスタムバリデータクラスで書こう
タケユー・ウェブ株式会社のフィード
!カスタムバリデータを使うと、モデルクラスから本質的でないロジックを追い出し、コードやテストを見通し良く保つ ことができます。 この記事でわかることActiveModel::EachValidator の使い方テストの書き方 事の起こりある案件で wareki gem を使って入力された日付を和暦に変換して表示しています。ある日お客様が入力した日付に誤りがあり、和暦が存在しない年がデータベースに登録され、ページを表示する際にエラーが発生し、表示できなくなってしまいました。その際はデータを修正することで復旧しましたが、次回から同じ誤りが発生しないよう、バリデーシ...
2ヶ月前
記事のアイキャッチ画像
現実のRuby/Railsアップグレード
タケユー・ウェブ株式会社のフィード
!この記事は、Kaigi on Rails 2024 で発表した内容の原稿をもとに作成しました。 対象読者課題を感じているけどどのように対処すればよいかわからない中級者課題に気づいていない初級者あるあるを楽しめる上級者 はじめにRuby on Railsアプリケーションを最新の状態に保つことは、新機能の利用だけでなく、セキュリティやパフォーマンスの面でも重要です。定期的なアップグレードは、アプリケーションの堅牢性を確保し、最新のフレームワークの進歩を活用するために不可欠です。Railsアプリケーションのアップグレードは、決して簡単ではありません。計画、テスト、...
2ヶ月前
記事のアイキャッチ画像
Windowsユーザーがmacを使う必要があるときにしたキーボード設定
タケユー・ウェブ株式会社のフィード
私は普段の開発業務にWindows11(+WSL2)を使用していますが、今回必要があってmac(Sonoma)を使うことになりました。その際キーボードの違いにストレスを感じることが多かったのですが、いくつかの設定を行うことで、これを改善できました。 環境macOS Sonoma 14.4.1REALFORCE 日本語フルキーボード(Windows)KVMによりWindows機とディスプレイと入力機器を共有 設定 Karabinerのインストールhttps://karabiner-elements.pqrs.orgインストール・起動後、案内に従って『セキュリ...
8ヶ月前
記事のアイキャッチ画像
ActiveRecordでCTEを使ってクエリを分割して個別にテストする
タケユー・ウェブ株式会社のフィード
Rails 7.1 以降では、任意の ActiveRecord Relation をCTEとして使用することができます。 共通テーブル式(CTE)を使うと、複雑なクエリ名前付きの一時結果セットに分割でき、クエリの可読性を高めるのに役立ちます。ActiveRecordでは .with クエリーメソッドに任意の ActiveRecord Relation を渡すことでCTEを定義できます。これは個々の結果セットをテスト可能になることを意味します。複雑なクエリを分割することで、テストしやすくなり、保守性を高めることにもつながります。ただし現時点では再帰的に利用することはできません。https...
8ヶ月前
記事のアイキャッチ画像
Cache-Control: public にする
タケユー・ウェブ株式会社のフィード
Railsアプリケーションで、特定のページのみCDNやブラウザにキャッシュさせたい場合、Cache-Control: public ヘッダーの付与と、応答に Session Cookie が含まれないようにします。 サンプルコードapp/controllers/concerns/enable_cache.rbmodule EnableCacheControlPublic extend ActiveSupport::Concern included do before_action -> do # このリクエストはSessionを使わないし、応...
8ヶ月前
記事のアイキャッチ画像
ActiveStorage::DiskController が返すファイルの Cache-Control ヘッダを設定する
タケユー・ウェブ株式会社のフィード
ActiveStorage のディスクアダプタを利用している場合、応答として返すバイナリデータについて、キャッシュ制御したいとき、どのようにするか説明します。 Cache-Control; public を返すことで、ブラウザキャッシュや、CDNでのキャッシュを活用し、サーバとネットワークへの負荷の軽減に役立ちます。動作確認したRailsのバージョン:7.1.3.2オープンクラスを使って ActiveStorage::DiskController に before_action を設定します。config/initializers/active_storage.rbRails....
8ヶ月前
記事のアイキャッチ画像
自由に働く技術
タケユー・ウェブ株式会社のフィード
はじめに私は長年にわたり自由に働くことを選んできました。その理由を紹介しながら、自由に働くために心掛けていることについてご紹介します。変化し続けるツールの使い方よりも、根本的な考え方・心構えの話になります。 筆者について私は2008年11月に24歳で個人事業主として独立開業し、2016年に法人化しました。2018年には数名の社員を雇用しましたが、現在は一人会社として活動しています。リモートワークは開業当時から行っていますので、15年 ほどのキャリアとなります。現在はWebサービス開発の受託開発や事業会社の技術支援を行う傍ら、Saitama.rbという地域Rubyコミュニテ...
9ヶ月前
記事のアイキャッチ画像
CDKで別のリージョンのリソースを使用する方法
タケユー・ウェブ株式会社のフィード
はじめにCDKを使用していると、時々異なるリージョンにまたがるリソースを利用したい場合があります。例えば、CloudFrontディストリビューションで使用する証明書は必ず us-east-1リージョンである必要があります。このような場合、CDKでどのように対処すればよいかを調べました。 この記事の対象読者CDKで構成管理しているエンジニア この記事に書くことカスタムリソースの使用例 この記事に書かないことCDKについての説明カスタムリソースとは何か? 方法こちらのIssueが参考になりました。[lambda] Lambda@Edge supp...
9ヶ月前
記事のアイキャッチ画像
自宅PCとDevPodで実現する Self-Hosted な Codespaces
タケユー・ウェブ株式会社のフィード
はじめにGitHub Codespacesは、Web版VSCodeでクラウド上のDevContainerを使用できる便利なツールです。しかし、自作PCやサーバーが趣味の私たちにとっては、手元の高性能端末をサーバーにできないのは不満です。そこで、DevPodを試してみました。 この記事の対象読者自己ホストできるCodespaceを探している方DevContainerで動くWeb版VSCodeを使いたい方日常的にDockerを使っている方 この記事に書くことDevPod のインストールと最初のセットアップ方法Tailscaleと組み合わせて便利に使う方法 ...
9ヶ月前
記事のアイキャッチ画像
Garnetで加速する?: Railsのキャッシュストアとしての利用
タケユー・ウェブ株式会社のフィード
はじめにhttps://www.microsoft.com/en-us/research/blog/introducing-garnet-an-open-source-next-generation-faster-cache-store-for-accelerating-applications-and-services/Garnetは、Microsoft Researchが開発した新しいキャッシュストアシステムで、最新のハードウェア機能を十分に活用できる設計となっており、Redisなどの既存のキャッシュストアと比べて、優れたスケーラビリティと高いスループットを実現できる、とされ...
9ヶ月前
記事のアイキャッチ画像
Tailscale Funnelで自宅サーバーのRailsアプリケーションを独自ドメインで公開する方法
タケユー・ウェブ株式会社のフィード
自宅サーバーで独自ドメインのWebサービスを公開するためには、ポートを開けたり、固定IPアドレスを用意するかDynamic DNSを使うか、みたいな手間が必要でした。VPNサービスであるTailscaleには、Tailscaleのネットワーク(Tailnet)上の任意のTCPポートをインターネットに向けて公開できるTailscale Funnelという機能があります。これを活用して、自宅サーバー上のRailsアプリケーションを安全かつかんたんに公開できないか? 試してみたので、その方法をご紹介します。 この記事について 説明することTailscaleからのアクセスをRails...
10ヶ月前
記事のアイキャッチ画像
DevContainer(Docker Compose)をTailnet(Tailscale)に接続するには
タケユー・ウェブ株式会社のフィード
公式のDockerで使用するガイドを参考に DevContainer をTailnetに接続できるようにしました。これにより、Tailnet内の他のデバイスから、DevContainerで起動したサービスへ接続できるようになります。なお、DevContainerからTailnet内の別のデバイスに接続したい場合は、通常ホストのIPアドレスを共有するので、ホスト側でTailnetに接続していれば、その権限で接続できるため、特別な対応は不要です。本記事は、Tailnet内の他のデバイスから、DevContainer(Dockerコンテナ)に直接アクセスさせたい場合の話です。たとえばロ...
10ヶ月前
記事のアイキャッチ画像
Procfile.dev を使う場合にデバッガ(vscode-rdbg)を使う
タケユー・ウェブ株式会社のフィード
vscode-rdbg については過去の記事https://zenn.dev/takeyuwebinc/articles/50793a2313824aデバッガ起動時にrails server を実行するなら上記の記事で動くはず。tailwindcss-rails cssbundling-rails jsbundling-rails などを使用する場合、Railsアプリの起動は Procfile.dev に記載します。次のように、 Procfile.dev ではデバッガ付きで起動し、VSCodeのデバッガ起動時は attach のみ行うようにすれば動作します。 設定例Pro...
1年前
記事のアイキャッチ画像
Propshaft で node_modules 内のファイルをアセットとして使う
タケユー・ウェブ株式会社のフィード
結論これから作るものについては、 node_modules を assets パスに含めようとするのはやめよう 動機importmap-rails で node_modules 以下のファイルを指定したい。config/importmap.rb の to: は asset_path で解決できるものを指定できるので、アセットパスに追加すれば使える。https://github.com/rails/importmap-rails/blob/ddf9be434e0aca1103eabafe6d34b0e8a5064057/lib/importmap/map.rb#L109h...
1年前
記事のアイキャッチ画像
Rails 7.0 から 7.1 で ActiveReco­rd::​Encryption::​Errors::​Decryption
タケユー・ウェブ株式会社のフィード
Rails 7.0 から 7.1 にアップグレードする際に、Active Record暗号化アルゴリズムの問題でエラーに遭遇しました。class Patient encrypts :mynumberみたいなのでhttps://railsguides.jp/upgrading_ruby_on_rails.html#active-record-暗号化アルゴリズムの変更についてに従って、バージョンアップ前の config.active_support.key_generator_hash_digest_class と同じになるよう config.active_record.encr...
1年前
記事のアイキャッチ画像
Rails(Devise)でパスワード認証に加えてパスキー(WebAuthn)でもログインできるようにするステップバイステップ
タケユー・ウェブ株式会社のフィード
パスキーの普及も進んできましたね。私のWindows11でもWindows Helloを使ったりAndroid/iOS端末を使ったローミングができたりととても便利で簡単です。ニンテンドーアカウントでもパスキーによるログインが可能になりました。もちろん設定しましたよね。https://www.nintendo.co.jp/support/nintendo_account/passkey/index.htmlRailsでもパスキーを組み込む方法がいろいろと説明されています。https://techracho.bpsinc.jp/hachi8833/2023_10_19/134237...
1年前
記事のアイキャッチ画像
Rails 7.1 の Dockerfile を試してみる
タケユー・ウェブ株式会社のフィード
Ruby on Rails 7.1が正式公開されたので触ってみます。https://railsguides.jp/v7.1/7_1_release_notes.html今回は、新たに rails new で作成されるようになった Dockerfile について見てみます。$ ruby -vruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]$ gem install rails -v 7.1.1 --no-document$ rails -vRails 7.1.1$ rails new moblog$ Co...
1年前
記事のアイキャッチ画像
日本語対応の全文検索エンジンMeilisearchをRuby on Railsから利用する
タケユー・ウェブ株式会社のフィード
はじめにまとめmeilisearch-rails gem があり、簡単に導入できるインデックス対象を柔軟に設定できるKaminariやPegy対応で他の検索方法との切り替えも簡単日本語での検索精度は正直用途を選びそう(v1.2)マッチしてほしいものがマッチせず、マッチしてほしくないものがマッチしないことも Meilisearchhttps://www.meilisearch.com/全文検索エンジンプログラムからはRESTful APIでアクセスして使うTypo tolerance(タイプミス耐性)に自信多言語サポートに力を入れている起動してす...
2年前
記事のアイキャッチ画像
wsl --import で『エラーを特定できません Error code: Wsl/Service/E_FAIL』
タケユー・ウェブ株式会社のフィード
PS> wsl --import docker-desktop-data "C:\Users\Yuichi Takeuchi\WSL\docker-desktop-data" .\docker-desktop-data.tarインポート中です。この処理には数分かかることがあります。エラーを特定できませんError code: Wsl/Service/E_FAILエクスポートされたtarが壊れているのかと再度エクスポートし直しても再現するhttps://github.com/microsoft/WSL/issues/4735#issuecomment-1370093052...
2年前
記事のアイキャッチ画像
AWS SDK for Ruby で Aurora My SQL DB クラスターのストレージ使用量を取得するには
タケユー・ウェブ株式会社のフィード
この記事では、AWS SDK for Ruby を使って Aurora MySQL DB クラスターの 現在のストレージ使用量を取得する方法 を説明します。 Aurora MySQL DB クラスターのストレージAurora MySQL DB クラスターのストレージ容量は自動拡張されます。従って、クラスターの設定から取得することはできません。(RDS MySQLであれば取得できます)https://aws.amazon.com/jp/premiumsupport/knowledge-center/view-storage-aurora-cluster/CloudWatchの V...
2年前