RailsのSeedファイルをシンプルに作成するためのGem、「seed-fu」の導入手順です。DBへの初期値の投入がある場合にはオススメです。 13/12/31 21:30 Rails 4 x Ruby 2.1で動作確認 🚜 seed-fuって何? 「seed-fu」は、seedデータの追加や管理を楽にするために作られたGemです。 構造もシンプルで扱いやすいです。 🚌 seed-fuの組み込みGemfileに以下を追加して、bundle installを実行。
![seed-fuで始める効率的なRails Seed管理【Rails 4 x Ruby 2.1】](https://cdn-ak-scissors.b.st-hatena.com/image/square/c2ea7e72d0d7f3ba6c237909f321e67ffbdaa24e/height=288;version=1;width=512/https%3A%2F%2Fmorizyun.github.io%2Fimg%2Fog_image.png)
class DebugController < ActionController::Base def render_foo(argv = nil) @foo = 'Foo' render_to_string template: 'foos/show' end end DebugController.new.render_foo => "<!DOCTYPE html>\n<html lang='ja'>\n<head>\n<meta charset='UTF-8'>\n<title>Foo</title>\n</meta>\n</head>\n<body>\n<h1>Foo</h1>\n</body>\n</html>\n" ac = ApplicationController.new ac.instance_variable_set(:@foo, 'Foo') # インスタンス変数をインジ
Customer.where(last_name: 'Smith').or(Customer.where(orders_count: [1,3,5]))
gem の概要 database_rewinder という gem があります。 これを使うとテストケースを実行するたびに DB の中身が初期化されて、しかも超速いというすごい gem です。 弊社でもヘビーユースさせていただいていたのですが、あるプロダクトの自動テストにおいて適切にデータが初期化されないケースがあり、 Flaky test の原因となっていました。 今回ご紹介する mysql_rewinder は、この問題を解決するために database_rewinder の代替を目指して開発した gem です。 使用例 Ruby on Rails / RSpec と組み合わせる場合、以下のように利用します。 RSpec.configure do |config| # MysqlRewinder の初期設定 config.before(:suite) do db_configs = A
環境 Ruby 2.7.2 Rails 6.1.3 terraform 1.0.2 やりたいこと private subnet 内にある ECS fargate から AWS SES を利用してメールを送信する VPC endpoint private subnet 内に ecs インスタンスを作った場合 NAT gatway などを利用しないと AWS SES に接続できません。 ただし、private subnet 内に VPC endpoint を設置することで AWS サービスとプライベートにアクセスができます。 現状、ses の vpc endpoint は ses-smtp-endpoint のみが対応してます。 Rails aws 公式で aws-adk-rails gem がありますが、SES との接続は HTTPS を利用しているので vpc endpoint を利用して
本ガイドでは、Railsアプリケーションをclassicモードからzeitwerkモードに移行する方法について解説します。 このガイドの内容: classicモードとzeitwerkモードについて classicからzeitwerkに切り替える理由 zeitwerkモードを有効にする アプリケーションがzeitwerkモードで動いていることを検証する プロジェクトが正しく読み込まれることをコマンドラインで検証する プロジェクトが正しく読み込まれることをテストスイートで検証する 想定されるエッジケースの対応方法 Zeitwerkで利用できる新機能 1 classicモードとzeitwerkモードについて Railsは最初期からRails 5まで、Active Supportで実装されたオートローダーを用いていました。このオートローダーはclassicと呼ばれ、Rails 6.xでは引き続き利
こんにちは、ヘイ株式会社でエンジニアをしている id:hogelog です。 2021年6月に入社し CTO 室という部署に所属しつつなんだかあちこちの部署に首を突っ込むような役割をしています。まだ入社したばかりで把握してないものも多いですが、ビジネスの勢い、人の活気、やらなきゃいけないことばかりという雰囲気をとても楽しんでいます。 さてここは技術ブログ。なので技術の話をします。今回は STORES https://stores.jp/ec を支えるなかなか大きなモノリシック Rails アプリケーションのオートローダーを Zeitwerk へと切り替えた業務について紹介します。最新技術でもなく、Rails の設定項目の一つ Rails.application.config.autoloader の値を :classic から :zeitwerk に切り替えるというだけの地味な内容ですが、
結論 Rails 5 の場合は redirect_back を使う。 答え
該当のエラー ActiveRecord::HasManyThroughOrderError Cannot have a has_many :through association 'Group#employees' which goes through 'Group#group_employees' before the through association is defined. 実現したいこと 社員は複数のグループに所属できて、 グループは複数の社員を持っているという風に結びつけたい。 グループに所属している社員。つまり@group.employeesを 実現したい。 原因 エラーメッセージにある通り HasManyThroughOrderError 文字通りの順番(Order)が原因らしい
Rails 4.x returns error information in HTML page whenever there is any exception, in the development environment. This is fine for normal HTML requests. But traditionally, Rails always returned with HTML response for exceptions for all requests, including JSON on XML requests in development. We can now generate API only apps in Rails 5. In case of such apps, it's better to have the error message i
世間では GW ですが、皆さんいかがお過ごしでしょうか。こちらは仕事も落ち着いてきたため、直近のプロジェクトでそこそこ時間を使う羽目になった Webpacker についてのブログ記事を書くことにしました。 はじめに Ruby on Rails では Sprockets というモジュール(?)によって、JavaScript, CSS, 画像などのアセットを管理する事が出来ます。これは Rails 独自の仕組みであり、それによる問題点なども目立つようになったため、フロントエンド界隈で広く使われている Webpack を使いたいという要望は以前からあったようです。(その辺りの経緯などは、検索すれば色々出てくるので、ここでは記載しません。) そうした要望に応えるものが Webpacker で、簡単に言うと Webpack の機能を Rails に組み込んだもので、使う側からすると主に以下の2つの機
committee×OpenAPI×RailsでスキーマファーストなAPI開発2019.12.01 committeeというgemとOpenAPIのスキーマを使ってRailsでスキーマファーストなAPI開発を試してみました。 弊社でWebアプリケーションを制作する場合、フロントエンドとバックエンドは別々に開発することが多いです。 フロントはほぼNuxt.jsですが、APIは誰が主導するかや求められるスピード感などでプロジェクトごとに変わってきます。 私が主導するプロジェクトである程度スピード感も求められる場合は主にRuby On Railsで開発をしています。(以下Railsで開発するという前提で話を進めます) 前提課題感フロントエンドとバックエンドのプロジェクトが別々かどうかはあまり問題ではありませんが、APIの実装を担当する人とフロントエンドでAPIの組み込みを担当する人が異なる場合は
docker-compose.yml �K vU �0� vU version: "2" services: datastore: image: busybox volumes: - mysql-data:/var/lib/mysql - redis-data:/data - app-tmp:/app/tmp mysql: image: mysql environment: MYSQL_ROOT_PASSWORD: password ports: - '3306:3306' volumes_from: - datastore redis: image: redis:alpine ports: - '6379:6379' volumes_from: - datastore app: build: . ports: - '3000:3000' environment: MYSQL_USERN
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く