→Ruby on Rails RubyによるWebアプリケーションフレームワーク RoR
Agile Web Development with Rails
10分で作るRailsアプリ for Windows http://masuidrive.jp/rails/
Ruby on Rails公式サイトの採用サイト紹介ページ http://wiki.rubyonrails.org/rails/pages/RealWorldUsage
はじめに 記事の内容はタイトルの通り。 この記事で取り上げるrails newのエラーはruby-lspのバグが原因だったのですが、このバグは既に修正されているため今後発生することはないかと思います。 実行環境 macOS Visual Studio Code 拡張機能としてruby-lspをインストール済み rbenv Ruby 3.2.3 ただし、以前は3.2.2を使用しており、そちらはアンインストール済み 発生した問題 rails newを実行すると以下のエラーで失敗。 $ rails new (省略) bin/rails aborted! LoadError: dlopen(/User…
社内システムの開発と運用保守を行っている HaraShoです。 去年の夏頃にrails 7に上げてからHotwireを使って開発を行っています。 これまでフロントの実装はjQueryを使っていましたが、Hotwire導入後は極力jsを書かないようにし、Turbo FrameやTurbo Streamを使って画面描画しています。 ちなみに書いているコードより削除したコードの方が多いです 笑 さて本題なのですが、jQueryからHotwire(Stimulus)移行時に色々細かい問題が発生したのですが、その内の1つにBootstrapのツールチップが意図通り動作しない問題がありました。 これまでは…
実装概要 Deviseの導入 新規登録/ログイン/ログアウトができるまで実装 モデルの単体テスト 1. Deviseの導入 Gemfile gem 'devise' ターミナル # Gemをインストール % bundle install # サーバーを起動 % rails s ⚠️Gemインストール後、サーバー再起動忘れがち。 ターミナル # deviseの設定ファイルを作成 % rails g devise:install # deviseコマンドでUserモデルを作成 % rails g devise User ここでマイグレーションを実行してもいいのですが、ロールバックが面倒臭いので、カ…
Railsのソースを読んでいて、modelに以下のような記述がありました belongs_to :company, optional: true 完全に忘れていたので、未来の自分のためにメモしておきます belongs_toのoptional: trueとは? 外部キーがnilでも許可するという意味です 同じ記事を開いた形跡があったので、前にも調べたのに忘れていたようです 使用例 例えば、 class User < ApplicationRecord has_many: posts end class Company < ApplicationRecord has_many: posts en…
はじめに 先日自分が書いた記事のコードの中で引数にアンダースコアを使いました。 jacezz.hatenablog.com ただ、自分の中でフワッとした理由で使っていたので、ちゃんと調べることにしました。 仕事でもちらほら見ることあるんですよね。 結果 Railsはアンダースコアでブロックパラメータを宣言することができ、使わないブロックパラメータはアンダースコアで指定したりするようです。 想定通りの使い方だったのでこれからは確信を持って使うことができそうです。 使わないことを明示的に示せるのは良いとも思いましたが、人によっては分かりにくい可能性もあるので積極的に使うかは微妙なところですね。 q…
sidekiq logo 使用環境 Ruby: 3.1.3 Ruby on Rails: 6.1.7.3 Sidekiq: 6.5.8 ジョブのステータス ステータスは4つあります 処理待ち 実行中 リトライ待ち 実行予約 各ステータスでジョブの一覧を表示 処理待ち Sidekiq::Queue.new.each {|job| puts "#{job.jid} #{job.klass} #{job.args}"} 実行中 Sidekiq::Workers.new.each {|process_id, thread_id, job| puts "process_id:#{process_id},…
概要 Enumerizeでしかデフォルト値を設定できないと思っていましたが、 Enumでもデフォルトを設定できるようなので、共有記事です 内容 Enumのデフォルト値を設定する enum status: { draft: 0, published: 1 }, _default: draft こんな形で、デフォルト値を設定できます。 prefixやsuffixをつける時と同じようにできました *Rails7からは _defaultは非推奨になり、defaultで設定できるようなりました! ちなみに..... 今回は、DBに設定する値はintegerにしていますが、string型にすることでパット…
概要 RailsのActiveRecordでよく使う、firstメソッド。 よく User.firstのような形でコンソールでサンプルを取得する時に使うのではないでしょうか 今回、firstメソッドについて書いてみました 内容 firstメソッドは、IDが先頭のレコードを返しているのか? こちらのメソッドを使うことで、ActiveRecordのテーブルの最初のレコードを取得できます。 しかし、必ずIDが1のレコードを持ってきているわけではありません。 # 必ず idの順番で並んでいるわけではない… u = User.first #<User id: 1, name: taro, email: …
概要 モデルにカラムの追加を行うようなタスクは日常茶飯事ではないでしょうか? その度に、バリデーションの検証をする必要があります。 いままで、コンソールで確認するときに、該当モデルをnewして、他のattributesに値を入れて、 やっと新しく追加したattiributeに値を入れてバリデーションの検証をしていました 今回、FactoryBotで簡単に作成することで時間短縮にもなるので紹介します 内容 前提として、userモデルに新しくgenerationを追加するタスクとします 今までの方法 u = User.new() #<User id: nil, name: '', email: '…
こんにちは。サーバーサイドグループの山田です。 先日StudyplusのRailsアプリケーションのRubyを3.3にアップデートしました。 Ruby3.3ではYJITによるパフォーマンス改善が目玉の1つですが、弊社のアプリケーションでどのような変化があったかを報告します。 前提 本記事で記載している集計データは以下のようなアプリケーションおよび条件で取得しています。 Studyplusのマイクロサービス群の中で最も規模の大きなRailsアプリケーション Railsバージョンは7.1.3 Ruby3.2.2でYJIT有効化済みの状態からRuby3.3.0にアップデートした際の変化 APIリクエ…
2024/05/08分のコミットです。 CHANGELOGへの追加はありませんでした。 Merge pull request #51749 from Shopify/devcontainer-use-sqlite-feature railties/lib/rails/generators/devcontainer.rbの修正です。 rails newで新規にアプリケーション作成時にDBにSQLite3を選択した場合に、SQLite3用のfeatureをDev Containerに含むよう修正しています。 Continue including Rails::ConsoleMethods to I…
はじめに 今回はRailsのインプット教材として使用した、「現場で使える Ruby on Rails 5 速習実践ガイド」の感想をまとめたいと思います! よかったところ Railsのセットアップから基本的なコードの書き方、どのような技術が使われているのかが学べてよかったです。 また、最後にはRailsコマンドも簡潔にまとまっており何度も見返して身に付けていきたい内容でした。 学んだこと chapter1 rubyについて 基本文法について触れておりました。 特に全体を通してよく目にするボッチ演算子はこの章で学べて良かったです。 chapter2 Railsセットアップ方法 本では自身の環境にイ…
Customers Mail CloudのWebhookは2種類あります。 メール受信時 メール送信時 メール送信時は、送信したメールに対してステータスが変わったタイミングで通知が送られるものです。 本記事では実際にどういった内容が送られてくるのかを紹介します。
Customers Mail Cloudではプログラム側からデータを取得したり、メールを送信するWeb APIの他に、Customers Mail Cloudでメールを受信した時にイベントを伝えてくれるWebhook APIが用意されています。 Webhook APIを使うことで、自前でメールサーバを立てずにメール受信のタイミングでシステムを起動させられるようになります。メールサーバを安定して動作させ続けるのはメンテナンスコストが大きいですが、Customers Mail Cloudを使うことで簡単にメールと連携したシステムが作れるようになるでしょう。 今回はGoogle Cloud Func…
Sidekiqで実現するRuby on Railsでの分散プログラミング 初めまして、株式会社Techouseでバックエンドエンジニアをしている本澤(mottei)と申します。本日は私の携わっているプロダクトであるクラウドハウス労務で利用されている分散プログラミングの技術について紹介します。 クラウドハウス労務について 分散プログラミングについて紹介する前に、私が開発しているクラウドハウス労務について、なぜ分散プログラミングが必要かの説明も兼ねて紹介します。 クラウドハウス労務は労務業務の電子化を推進するためのクラウドサービスです。人事労務担当と従業員との手続き機能・年末調整などの法定業務など…
こんにちは、とらのあなラボのはっとりです。 今回は、開発環境で使用しているRuboCopの設定を標準化したプロセスについてお話しします。 RuboCopの重要性 RuboCopは、Ruby言語で書かれたコードを静的解析することで、一貫性のあるコーディングスタイルを促進し、潜在的なバグを指摘するツールです。開発チームが成長するにつれて、コードベースも複雑化し、多くの開発者が関与するようになります。このとき、一貫したコーディング標準がなければ、コードの可読性や保守性が大きく低下するリスクがあります。RuboCopは、このような問題を事前に防ぎ、効率的でバグの少ない開発プロセスを支援します。 htt…
CTO 藤村がホストするPodcast、論より動くもの.fmの第28回を公開しました。今回は STORES に24卒で入社したエンジニアのmaseとRubyKaigi 2024を楽しむ方法について話しました。 論より動くもの.fmはSpotifyとApple Podcastで配信しています。フォローしていただくと、新エピソード公開時には自動で配信されますので、ぜひフォローしてください。 podcasters.spotify.com テキストで読みたい方は下記からご覧ください。 マニキュアはプラモデルより難しい 藤村:こんにちは、論より動くもの.fmです。論より動くもの.fmは、STORES の…
こんにちは、SREグループの 水口 です。 この記事では、スタディプラスが運営する「Studyplus Engineering Podcast」の公開までに行なっているPodcastのShow Notesを作成する過程について紹介します。 Show Notesと生成AI活用のモチベーションについて Show NotesとはPodcastのエピソード内で何が起こったかを詳細にまとめたもので、一般的には以下の内容が記載されます。 トピックの要約 言及された話題に関するリンク Podcastの聴取や購読などのCTA(Call To Action / 行動喚起) また、収録・編集ツールを提供するRiv…
2024/05/07分のコミットです。 CHANGELOGにのったコミットは以下の通りです。 activerecord/CHANGELOG.md Add ENV["SKIP_TEST_DATABASE_TRUNCATE"] flag to speed up multi-process test runs on large DBs when all tests run within default txn. Add ENV["SKIP_TEST_DATABASE_TRUNCATE"] flag to speed up multi-process test runs (#51686) active…
2024/05/06分のコミットです。 CHANGELOGへの追加はありませんでした。 Fix console_test to work with both IRB's RelineInputMethod and StdioInputMethod railties/test/application/console_test.rbの修正です。 IRBの挙動の変更の影響で、IRBの最新バージョンだとrails consoleのテストがfailするようになってしまっていたのを修正しています。 Fix config.read_encrypted_secrets deprecation warning …
海外でもSQLは最初にFROM句が来た方が分かりやすいんじゃないの、という議論は昔からある。日本人に限らず思考の順序と合わないなあと世界中のみんなが思いながら書いてるんで、別に目新しい論点ではない。分かったらXやってないで仕事に戻れ。 https://t.co/GdFAKasFyW— ミック (@copinemickmack) 2024年5月7日 私も SQL 嫌いなんですよ! 10年以上前に書いたやつ。https://t.co/XsoL8vNVfu— とみたまさひろ🍣🍺 (@tmtms) 2024年5月7日 【新刊】2024年5月22日発売『MySQL運用・管理[実践]入門〜安全かつ高速にデ…
前回、自作のアプリを Cloudflare Pages + D1 に乗せてみました。 Hono + React + TanStack Router + TanStack Query + Chart.js + Drizzle ORMなアプリを、Cloudflare Pages と D1 に乗せてみた - メモ的な思考的な Cloudflare D1にあるテーブルの Cloudflare の D1 のページ D1 Manager https://github.com/JacobLinCool/d1-manager で確認できます。 一方、アプリはWebStormなどのJetBrains IDEで開…
Railsの続きです。前回はScaffoldでToyアプリケーションを作りました。次はRailsチュートリアルの第3章に入ります。静的なページをつくります。今回からはScaffoldは使わないようです。それではいきましょう!