→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
プラットフォーム部 DevEx チームの河井です。 8月に弊社サービス TUNAG(ツナグ)で使っている Ruby on Rails のバージョンを 6.1 から 7.0 に上げたので共有します。 やったこと 一般的なバージョンアップのフローについては多くの記事がありますので、ここでは影響が大きかった仕様変更の対応方法について紹介します。 フォーマット指定なしの to_s to_s にフォーマットを渡すことが非推奨化されました。 この変更により、引数なしの to_s の挙動が変わってしまう問題がありました。 そこで、影響を受けるクラスについて to_s をオーバーライドし、フォーマットがこれま…
親に紐づく子を作る https://zenn.dev/murakamiiii/articles/5ecefb7a58d1ef 親に紐づく子を削除 https://qiita.com/NateRive/items/be35c1a52aef8fd0d355 調べた背景 良く見かけていたから。 パラメーターさえ受け取ってしまえば、accepts_nested_attributes_forメソッドを使うだけで、 子を作る 親に紐づく子を削除 が簡単に行えるみたい。 楽をするための技術のようです。 所感 けっこうな黒魔術なので、プロダクトで取り入れる際は検討した方が良い気もした。 実装する際は ・子を作…
はじめに 初めて構築してみたので、指摘等がたくさんあるかと思いますが、 一読してもらえると嬉しいです。また、指摘ありましたらコメント下さい。 環境 Rails 7.0.8 Ruby 3.2.0 Docker Docker-compose MySQL 学び 各ファイルについては、割愛します。(ネットにたくさんの記事が出ているので、重複することが多いです) 仕事でも使うことがあるので、わかっているが自分のPCに余計なものを読み込ませる必要が無いことが一番のメリットでは無いでしょうか。 下記のコマンドは何気なく使っていたのですが、docker desktopをみてびっくりしました!! docker …
VS Codeの右下に「Rubocopが動かないよ!」という旨のエラーを出すことがある。 対処法を何度も検索しているのでメモしておく。 VSコードが出すコマンドをターミナルで叩いてみる。 $ /Users/xxx/.rbenv/shims/rubocop .rubocop_todo.yml: Rails/SelectMap has the wrong namespace - should be Performance Error: unrecognized cop or department Rails/RedundantActiveRecordAllMethod found in .rubo…
1. はじめに こんにちは、SWEのあかりです。 記事を書くまでがカンファレンスということで、(1)大阪Ruby会議03のLT会で発表した「RAILS_ENVを統合する取り組み」についてと(2)大阪Ruby会議03に参加した感想について報告させていただきます。 2. 発表内容について LT会では、「RAILS_ENVを統合する取り組み: 開発用デプロイ環境をよりシンプルに」というタイトルで発表してきました。 発表スライドは以下のSpeaker Deckにて公開しているので、よければご参照ください。 speakerdeck.com 発表内容のストーリー自体はシンプルで、かつ、説明もスライド内に全…
こんにちは。サーバーサイドエンジニアの三村(@t_mimura)です。 主に保険薬局と患者さまを繋ぐ「かかりつけ薬局」化支援アプリ kakariのサーバーサイド開発(Ruby on Rails)を担当しています。 今回はRailsシステムのCI時間をコスト追加なしで半減した話をします。 目次 前提 対象プロジェクト CIの状況 改善結果 改善内容 前提知識: CIのキャッシュ機能 webpack buildのキャッシュを活用 RuboCopのキャッシュを活用 ESLintのキャッシュを活用 Jestのキャッシュを活用 RSpec Jobをテスト特性ごとに分割 CircleCIのリソースクラスと…
RailsのDockerイメージを作成する時のmaster.keyの取り扱い zenn.dev docker buildkitを使って解決って手段の例。
0. はじめに こんにちは、SWE のやなせです。 暑い日が続きますね。この記事を書いている日の最高気温は34℃だそうです。34℃という数字を見てもすっかり慣れてしまった自分に驚きました。 今回は自分が所属する施工案件管理チームで一番ホットな、2023年7月にリリースした「写真台帳 Excel 出力機能」の概要と、その実装時に直面した技術的課題について紹介します。 1. 施工案件管理と写真台帳作成について 私の所属する施工案件管理チームでは、ANDPAD のコア機能である施工案件管理を開発・保守しています。 工事現場では、施工前から完成後まで多くの写真を撮影し、工事が適切に施工されたことを証明…
はじめに Dockerを使用すると、アプリケーションの開発環境を簡単かつ効率的にセットアップすることができます。 本記事では、Docker Composeを使ってRailsアプリケーションの開発環境を構築する手順を詳しく解説します。 はじめに この記事でわかること 前提 Docker化手順 1. アプリケーションの作業ディレクトリを作成 2. GemfileとGemfile.lockの作成 3. Dockerfileの作成 コードの解説 4. docker-compose.ymlの作成 コードの解説 5. .dockerignoreの作成 6. Railsアプリケーションの生成 7. Dock…
気になった用語や感想をまとめる(使用頻度が高くないもの等細かい所はきる) 導入(下記参考文献2より) putsはpと省略可(微妙に挙動が違う) オブジェクトを操作するのがメソッド「オブジェクト.メソッド」 オブジェクトは何らかのクラスに所属する オブジェクト(インスタンス)はクラスから作られる「オブジェクト=クラス.new」 1列は一次元配列、2列以上は多次元配列 インスタンス変数はオブジェクトのメソッドからのみ参照できる ただしアクセサを使うとオブジェクトの外から参照できる(ex. attr_accessor :xxx) 第1章_本書を読み進める前に ローカルで環境構築した 第2章_Ruby…
仕事に関する「軸」、「仕事を生み出すこと」の意識と流れについて思うこと 仕事は生み出す人、そこに繋がって連携していく人がいます。 プロジェクトが大きくなれば、組み合わさる人も増えてきます。 そのどの段階においても、一つのプロジェクトであり、 完成形に向かっていくプロセス一つ一つがプロジェクトを造り上げていきます。 その時、バトンを受け渡される人がどのような意識で受け取っているのかが その人の仕事の向き合い方、成長、成果につながると考えています。 大きな流れの中で、同じ目標を掲げているのか、 ただ来たからやるのか、面倒な仕事が増えたと思うのか、 この意識一つで、そのバトンを受けた人がどのような仕…
更新日時 2023/10/04/07:07 Qiita Trends Daily 1位 [New] Network,WSL,WSL2 Qiita Trends Daily 2位 ※前日7位 Java,Git,インターン,ペアプログラミング Qiita Trends Daily 3位 [New] cloudflare,学祭,Next.js,CloudflareWorkers,CloudflareR2 Qiita Trends Daily 4位 ※前日4位 読書,まとめ Qiita Trends Daily 5位 [New] Rails,RSpec,Elasticsearch,elasticsea…
2023/10/03分のコミットです。 CHANGELOGにのったコミットは以下の通りです。 railties/CHANGELOG.md Conditionally print $stdout when invoking run_generator Delegate block in broadcast logger method_missing activesupport/lib/active_support/broadcast_logger.rbの修正です。 broadcast loggerにblockが渡された場合に、そのblockを各loggerにdelegateするよう修正しています…
はじめに 祝・壮瞥町コラボ👏 英国コラボもきっとあるよね? nikkieです。 DBだけでなく、Djangoアプリもdocker compose upで動かすというテーマに取り組みました。 まだまだ突き詰められる余地があるのですが、一度セーブポイントを作ります 目次 はじめに 目次 これまで:DBだけdocker compose up ドキュメントの例 仮想環境で動かしていたDjangoアプリをdocker compose upで動かせるようにする マルチステージビルドする、でしょ! docker-compose.yml 宿題事項 終わりに これまで:DBだけdocker compose up…
Dockerはアプリケーションを軽量なコンテナとしてパッケージ化し、どこでも動作させることができる便利なツールです。 この記事では、まだまだ初学者ではある私ですが既存のwebアプリを任意のlocal環境で動作させる為のdocker化を覚えましたので、他者様が作った既に完成しているwebアプリをDockerとDocker Composeを使用してDocker化してlocalで起動する手順を解説したいと思います。 今回は railsアプリ、またdbはPostgreSQLを使用します。 追加で必要なファイルは2つ、修正するファイルは1つ 既存webアプリのdocker化の大まかな流れ 1. Dock…
Linuxとは Linuxは、オープンソースのUnix系オペレーティングシステムの一つ。 多くのディストリビューションと呼ばれるバリエーションがあり、それぞれ異なる機能やパッケージを提供している。 安定性、セキュリティ、柔軟性に優れ、特にサーバー環境で広く使用されている。 Linuxコマンドとは? Linuxコマンドは、Linuxオペレーティングシステムを操作するためのテキストベースのコマンドラインユーティリティ。 Linuxのコマンドライン環境を使用することで、ファイルとディレクトリの操作、プロセスの管理、システム設定の変更など、さまざまなタスクを実行できる。 Linuxコマンドはターミナル…
初めに Mac OsにRuby on Railsの環境構築を行ったが、上手くいかないことがありましたので、備忘録がてらに記事を書いていきます。 環境構築の流れ Homebrewのインストール rbenvとruby-buildのインストール Rubyのインストール BundlerとRailsのインストール Homebrewのインストール パッケージマネージャーであるHomebrewをインストールする。ターミナル上に以下の記述を行う。 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD…
まえがき 対象レベル 注意 準備運動 2つの前提知識 メソッド呼び出しのような、暗黙的なレシーバの補完(self.)は行われない なぜ C2.new.const が 'C2' を返すような気がしたか 定数呼び出しは暗黙の self. が補われない ダブルコロンの記法 定数探索の概要 探索経路(1) クラス・モジュールのネストを辿る探索 クラス・モジュールのネストとは Module.nesting メソッド ネストを辿る探索の経路 = Module.nesting 探索経路(2) 継承チェーンを辿る探索 定数の参照の記述 参照の記述と探索経路(1) 定数名のみ記述・記述箇所からの探索 参照の記述…
Repro では Aurora MySQL を使用しています。いくつか数千万行を越えるデータを持つ大規模なテーブルもあります。 大規模なテーブルのスキーマを変更するときは pt-online-schema-change1 を使用していますが、今回はその必要性を判断するタイミングを早めた話です。 pt-osc が必要になる理由等は次の記事が詳しいです。 - pt-online-schema-changeの導入時に検討したこと、およびRailsアプリとの併用について - freee Developers Hub 解決したい課題 Repro では Rails アプリケーションが管理画面や API を…
昨日は現場にて、大型住宅の最終チェック、現在エクステリア工事に差し掛かり、 いよいよ完成です。 ということで引渡し前に設計部署を連れて現場勉強会をさせていただきました。 納まり(つくり)や、どのような方法でスッキリ見せているかの手法、 デザインなどを含め解説させていただきました。 設計課の皆の励みや勉強になってくれればいいですね。 昨日は夜支店に戻り、引き続き、本社業務にてプランを作成していると、 ある営業が私の居場所を見つけてプラン相談にきました。 やはり、どんなに忙しくても、ここまで熱意をもってくれると断れないですね。 横で指導しながら、プラン作成業務を行いました。 その他もろもろ業務もあ…
2023/10/02分のコミットです。 CHANGELOGへの追加はありませんでした。 rails db:drop now removes -shm and -wal sqlite files (#49436) activerecord/lib/active_record/tasks/sqlite_database_tasks.rbの修正です。 DBにSQLite3を使用している場合に、db:drop実行時にxx-shm、及び、xx-walファイルを削除するようにしています。性能改善を行った、Performance tune the SQLite3 adapter connection con…
生活と仕事 4:45起床。シャワーを浴びてすっきりして、5:40から仕事を開始。洗濯をしつつ仕事をしてから6:50ぐらいから珈琲貴族エジンバラへ。朝飯を食いつつ仕事を開始。お客さんにメールを送ったんだけど、定型文を修正するの忘れた状態で送ってしまった。あかんあかん。午前中はMapFish PrintをAWS Lambda Web Adapterを取り入れられるか検証していた。github.comとりあえずsam local start-apiが動作するまでは行ったのだけど、PDFが出力できなかった。コツとしてはsam local start-apiが8080ポートを使ってしまうので、ポート番号…
こんにちは!ピクシブでバックエンドエンジニアとして働いているこのぴーです。 今回はpixivコミックストアの作品検索機能をMySQLの全文検索からElasticsearchに移行したときの手順と移行後の効果についてお話していこうと思います。 背景 pixivコミックストアのバックエンドはRuby on Railsで作成していて、今回Elasticsearchへ移行する作品検索機能はMySQLの全文検索を使用して実装されていました。 作品数が少なかった実装当時は問題なく動いていたのですが、取り扱う作品数が数十万作品となった現在、スロークエリの大部分を検索クエリが占めるほど性能が劣化してしまう事態…
大谷翔平 大リーグでホームラン王を獲得 日本選手初の快挙 | NHK つらい記憶のフラッシュバックは「テトリス」をやると減る、研究 海外のCGクリエイターが『シン・ゴジラ』から日米の怪獣映画を比較する動画が面白い「大事なのは視点」「ハリウッドは怪獣を擬人化しすぎ」 四谷大塚の別講師も新たに逮捕 共謀し女子児童を盗撮疑い | NHK サーバレスに最適化したJava実行基盤「GraalOS」、オラクルが発表。Javaをネイティブバイナリにコンパイルし瞬時に起動 岡田准一11月にもジャニーズ退所か 周囲に意向伝える 事務所2度目の会見と同日発表も(日刊スポーツ) - Yahoo!ニュース [第41話…
↓↓クリックして頂けると励みになります。ランキング参加中プログラミング Ruby on Railsで開発したアプリケーションをherokuにデプロイする際、データベースのパスワードや他連携サービスの情報など、機密情報の取り扱いには注意が必要です。 ただ、開発環境と本番環境で機密情報の設定が違うため、アップデートを行う際に開発環境で確認できなくなると不都合が生じます。 そこで、開発環境での機密情報の設定方法と本番環境(heroku)での設定方法を解説します。 まず開発環境での機密情報の設定方法です。 GemFileに「dotenv」gemを追加します。 gem 'dotenv', '~> 2.8…