→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
はじめに privateメソッドとは? Rubyのprivateは特殊? 調査 検証する環境 検証した内容 実験及び結果 1.コードは上から下へと実行されるは嘘? 2.クラス内で定義されたメソッドはどの順番で実行されるのか? a.クラスの情報が最初に実行されるのか? b.privateメソッドだけが下から呼び出せるのか? c.クラスの中のコードもはじめに上から実行しているのか? d.クラス内のメソッドが認識されるタイミングは? ⅰ.クラス内のメソッドは上から実行された時に本当に認識されていないのか? ⅱ.newメソッドがクラス内のメソッドを認識したタイミングは? 3.定義したメソッドのさらに中…
オプションに困るのでメモ rails 7.0.4.3 $ rails -v Rails 7.0.4.3 $ rails new -h Usage: rails new APP_PATH [options] Options: [--skip-namespace], [--no-skip-namespace] # Skip namespace (affects only isolated engines) [--skip-collision-check], [--no-skip-collision-check] # Skip collision check -r, [--ruby=PATH] # …
Railsではマイグレーションファイルを作成してマイグレートを実行することで、テーブルが作成されます。 非常に便利で手軽にテーブルの定義・作成ができるのですが、マイグレートされた結果、どのような型が選択されるのかが隠蔽化されるという問題があると思っています。一例として、t.stringとt.textでそれぞれカラムを定義した場合に実際にテーブルで採用される型はどうなるでしょうか。 class CreateUserTable < ActiveRecord::Migration[7.0] def change create_table :users do |t| t.string :string_…
はじめまして! エージェンシー事業でリードアプリケーションエンジニアをしている福堀です。 担当サービスでは数十の広告媒体のレポートデータをRailsのResqueを利用したバッチ処理でAPI等から取得しています。 このサービスは立ち上げから7年以上経過しており、私自身も携わってから4年程経ちましたがその間に様々な苦労や工夫したことがありました。 その中から今回はGoogle AdsおよびYahoo!広告のAPIの仕様・実装例についてとエラーが頻発したAPIに対してどのように対応したかを紹介します。 Google Ads GemとAPIバージョン APIの実行について 例外処理について Yaho…
はじめに イタンジ株式会社の開発の越智です。現在、「物件管理くん」というサービスの開発を担当しています。 本記事ではRailsアプリケーションのN+1問題を解消する方法として挙げられる、ActiveRecordのメソッドについてまとめます。 N+1問題とは? N+1問題とは、ループ処理の中で都度 SQL を発行してしまい、大量の SQL が発行されてパフォーマンスが低下してしまう問題のことです。 これだけだと抽象的すぎるので、具体例を示します。 以下のようなテーブルを考え、companiesテーブル:storesテーブル = 1:多の関係とします。 今回使用するテーブルのER図 以下は、企業(…
はじめに おはこんばんちは。 hacomono 開発部の iwazer です。 最近は Cyberpunk 2077 を再開して、やってなかったサブクエストやNCPDミッションを延々と潰している毎日です。そろそろやることもなくなってきたので早く最終 DLC 来てくれないかな。 あと Starfield の発売日が決まりましたね!ゼルダとだいぶ離れてて安心です。 余談はこのくらいにして、私は hacomono の基盤開発チームで主にプラットフォームの設計や改善を行っております。 最近は、プロダクトも成長してきてボトルネックを発見して改善するお仕事をよくやってます。 やけに遅い処理 データが多くて…
今回はRails環境をDockerで構築する方法についてです。 Docker Compose V1が非推奨となり、Docker Compose V2が推奨となることも踏まえてV2で行おうと思います。 Docker Desktopはインストール済み、アプリケーションを格納するフォルダは作成済みの状態で進めます。 Dockerfileの作成 まずはDockerfileを作成します。 DockerfileはRailsの実行環境用のイメージを作成するためのファイルです。 次のコマンドでDockerfileを作成します。(今回はsamplev2というフォルダを作成したとします) samplev2 % t…
FBCのチーム開発でイベントをical形式で出力するissueに取り組んでいます。 ファイルが出力されてカレンダーと同期できるところまでは一旦実装はできました。 しかし、私の要件確認ミスで考慮漏れがあったため追加対応中なのですが、一旦実装が終わったRailsでのファイルダウンロード機能について簡単にまとめておきたいと思います。 リファクタ前:renderメソッドのオプションで対応していた 実装当初は以下のように render メソッドを使ってファイル出力の処理を書いていました。 ※カレンダーのフォーマット処理の詳細は割愛します。 def index respond_to do |format|…
Railsでbodyタグにcontroller名とaction名から生成したidをつける 久しぶりにRailsで実装していて、タイトルのようなことをやりたい時の実装方法。以下のブログを参照。 v-crn.hatenablog.com application.html.erbにて以下のように実装すると、 <body id='<%= "#{controller.controller_name}_#{controller.action_name}" %>'> 生成した結果は以下の通りになる(posts#indexにアクセスした時の例)。 <body id="posts_index"> </body>
前提 Railsでcreated_atを含む文字列をJSONに変換したものを受け取った後、そのJSON文字列からcreated_atを取り出し、DBにデータを取りに行くような実装がされていたとします。 その際、想定通りのデータがDBから取得できずに困ったので、その調査&原因をまとめます。 # articleテーブルから1レコードを取得する article = Article.last Article Load (6.0ms) SELECT "articles".* FROM "articles" ORDER BY "articles"."id" DESC LIMIT $1 [["LIMIT",…
更新日時 2023/03/23/07:07 Qiita Trends Daily 1位 [New] プロダクトマネジメント,個人開発 Qiita Trends Daily 2位 [New] ツール,拡張機能,AI,VSCode,copilot Qiita Trends Daily 3位 [New] Java,OpenJDK,新機能,Java20 Qiita Trends Daily 4位 ※前日2位 ポエム,チーム開発,プロジェクト管理,マネジメント,リーダーシップ Qiita Trends Daily 5位 ※前日6位 ツール,学習,ChatGPT,記事投稿キャンペーン_ChatGPT,GP…
エンジニア・プログラマーの学習に約立つコンテンツのセール情報を集めました 1位 現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル ¥27,800 → ¥1,900 93%OFF!! ⭐ ⭐ ⭐ ⭐ (20,074件) 現役シリコンバレーエンジニアが教えるPython入門!応用では、データ解析、データーベース、ネットワーク、暗号化、並列化、テスト、インフラ自動化、キューイングシステム、非同期処理など盛り沢山の内容です! 2位 【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 初級編 - ¥15,800 → ¥1,800 …
2023/03/22分のコミットです。 CHANGELOGへの追加はありませんでした。 Use explicit module for Rails::HealthController railties/lib/rails/health_controller.rbの修正です。 HealthControllerのdocがAPI doc上でRails namespace配下に表示されるよう、moduleの指定を修正しています。 Fix #hash and #== for composite pk models activerecord/lib/active_record/attribute_meth…
2023年3月の Rails / OSS パッチ会を 3月23日(木)に Discord でオンライン開催します。 この会をひとことでいうと、日頃のお仕事で使っている Rails をはじめとする OSS について、upstream にパッチを送る会です。 会には Ruby と Rails のコミッターである顧問の a_matsuda もいますので、例えば Rails に送るパッチのネタがあるけれど、パッチを送るに適しているかの判断やパッチを送る流れが悩ましいときなど a_matsuda に相談して足がかりにするなどできます。 開催時間は 17:00-19:00 となりますがご都合のあう方はぜひ…
対象者 railsでこれからアプリ制作する初学者 目次 データベース(テーブル)作成の全体像 実際にテーブルを作成してみよう(家の設計図作成から家を建てるまで) テーブルの編集(カラムの追加). データベース(テーブル)作成の全体像 ①モデルの作成. ②そのモデルを元に実際にデータベース(テーブル)作成. 家に例えると↓ 設計図⇨モデル. 家⇨テーブル 実際にテーブルを作成してみよう(家の設計図作成から家を建てるまで) ①モデルの作成. 設計図(モデル)を作成するコマンド↓ rails g model モデル名 カラム名:データの型 gはgenerateの略でrails generate mo…
こんにちは、 @kenkoooo です。2月に開催されたDevelopers Summit (デベロッパーズサミット, デブサミ) のセッション「満を持して始める Rust」で発表した内容をブログでお届けします。セッションの内容を再現しているので、色んな話題を詰め込んだ忙しい内容になってしまいましたがご容赦ください。 Rust とは Rust とは、Mozilla が初期から公式プロジェクトとして開発を進めてきたプログラミング言語で、コンパイラがメモリ安全性を保証するという特徴があります。バージョン 1.0 のリリースから8年ほど経ち、広く使われるようになってきました。 Shipping Ru…
Customers Mail CloudのWebhookは2種類あります。 メール受信時 メール送信時 メール送信時は、送信したメールに対してステータスが変わったタイミングで通知が送られるものです。 本記事では実際にどういった内容が送られてくるのかを紹介します。
「感謝祭クイズ!」についておさらい DX事業本部の小松です。 以前投稿した「感謝祭クイズ!」アプリ【前編】の記事では、技術構成に関する簡単な説明と、どんなアプリを作ったのかについて紹介しました。 おさらいすると、「感謝祭クイズ!」はリアルタイムクイズを開催するためのアプリです。管理画面でクイズを作り、進行画面でクイズ大会を進め、参加者画面でクイズに解答することができます。 管理画面でクイズを作成 進行画面でクイズ大会を進め、参加者画面が自動で切り替わっていく 参加者画面でクイズに解答する そんな「感謝祭クイズ!」は、主にSvelteKitとFirebaseを用いて以下のような構成で開発されてい…
CTO室の岩本 (iwamot) です。 この記事では、Dockerイメージの軽量化事例をご紹介します。 ざっくりまとめると、下記の手順で軽量化を進めました。 diveを使ってレイヤを分析した ベースイメージをpythonからpython:slimに変えた 無駄なファイルを除外した まず、背景から説明します。
こんにちは。プロダクト開発部でバックエンドエンジニアをやっている野田です。 Ruby on Rails 製プロダクトの Pep Up でメールサービスを SendGrid へ移行するプロジェクトを行っていました。 メールサービス移行プロジェクトでは大きく分けて Pep Up から配信するメールを SendGrid から送信できるようにする SendGrid から送信したメールの送信数、開封数、クリック数を計測できるようにする の2点があったのですが、今日は後者の話をしようと思います。前者も機会があれば話をしたいなと思います。 移行の背景 サービスリリース当初からは別のメールサービスを使っていま…
はじめに 今週の「半導体チップ雑談」では、GPUの電源についてお話しました。 来週日曜日の11:00-12:00に半導体チップに関する雑談をやっています来週日曜日(3/19)GPU Boardの電源回路についてです。Google Meetの会議コードはhttps://t.co/lisN6firt9です— Vengineer@ (@Vengineer) 2023年3月12日 上記のツイートのスレッドに貼った、下記の記事をベースにGPUの電源がどうなっているのかを説明しました。 www.igorslab.de この記事のPage.3の下図が非常にわかりやすいと思います。説明のために引用します。 D…
エンジニア・プログラマーの学習に約立つコンテンツのセール情報を集めました 1位 現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル ¥27,800 → ¥1,900 93%OFF!! ⭐ ⭐ ⭐ ⭐ (20,069件) 現役シリコンバレーエンジニアが教えるPython入門!応用では、データ解析、データーベース、ネットワーク、暗号化、並列化、テスト、インフラ自動化、キューイングシステム、非同期処理など盛り沢山の内容です! 2位 【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 初級編 - ¥15,800 → ¥1,800 …
ChatGPT-4で働く淘汰より sugoi。サブスク登録すると使えるとのことで登録してみた。自分の場合は、まだGoogle検索の+αレベルでしか使いこなせてないが、既に仕事でかなり助かっている。 下はPHPのAWS SDK経由でS3をアップロードする時の文法について聞いたのだが、このくらいなら公式のSDKを読めとかパッケージ追えとかいうマサカリはしまってもらうとして、かなり簡単に対話的に情報を教えてくれる。 「PHPのAWS SDKを利用してS3を使う場合の文法について聞くね」と言う質問をして、その回答に提示してくれたAWSのサンプルコードから「putObjectのKeyはなんの意味?」を質…
先々週の22社目は落ちた 落ちた理由は 「WEB系実務未経験なのに自己鍛錬が見られない」 ということで、 一晩でAWSのcloud9環境で railsアプリを立ち上げたが、oops(エラー)になった なかなかエラーがたくさん出て大変だね 苦労はやってみないと分からないな (数年前にrailsで立ち上げ成功したがもう忘れてしまった) 今週23、24社目 昨日、23社目の一次面接 3日後、24社目の一次面接 そんなこんなで面接対策をがっつりやってた 昨日の一次面接は 人事の方と1対1で ほぼ想定質問だったので大丈夫だと思う 問題は二次面接の技術の話だな 目標は ・俺のことを欲しいと思わせること 自…