Rails
CSVアップロード機能のテストなどをするときにテストデータを置きたいときのメモ 出典元 file fixture - RSpec Rails - RSpec - Relish ドキュメントいわく Rails 5 adds simple access to sample files called file fixtures.File fixtures are normal file…
actionに対しての実行なのでそのとおりといえばそのとおりなんですが備忘として。 環境 $ bin/rails --version Rails 6.0.4.1 TL;DR before_actionでredirect_toをするとafter_actionでは呼ばれない 回避案はいくつかあるが、action内でredirect_toをするな…
developmentでは見れたのに、productionじゃ見れないのはなぜ…となるときに見直す設定 環境 $ bin/rails -v Rails 6.0.4.1 想定している状況 /public配下のファイルが、RAILS_ENVがdevelopmentだと見れて、productionのときに見れないときに考える設定 Rails…
Kaigi on Rails 2021 の2日目にリモート登壇してきました。 発表したスライド speakerdeck.com 伝えたかったこと before_action でインスタンス変数のセットは本当にいいことがないのでやめよう before_action の使い方がわからなくなったら横断的関心事かど…
Kaigi on Rails 2021 の一日目見たよメモです。 各発表の感想 部分的に見れていないパートがあったので見れたものだけ ※資料スライドは見つけたら貼ります。 Q&A kamipo トークについて a_matsudaさんがモデレータという形式で話が進められていった。 以下話…
表題通り違和感をまとめる。 前提としてメモ化とは Wikipedia曰く以下の通り メモ化(英: Memoization)とは、プログラムの高速化のための最適化技法の一種であり、サブルーチン呼び出しの結果を後で再利用するために保持し、そのサブルーチン(関数)の呼び…
いくつに設定すればいいのかの根拠がわからない方へ 環境 今回参照したGitHubのVersionは 5.2.2 時点のもの。 出典 出典はREADME.md puma/README.md at a99331d32e762c1b9823ab44bed92d622a65b6d3 · puma/puma pumaのスレッド数に関してREADMEには以下のよう…
昔のPHPを彷彿とさせる変換だったので書き留める 環境 $ bin/rails --version Rails 6.0.3.6 どういうことか ActiveRecord::Type::Boolean.new.cast は引数をtrueあるいはfalseに変換してくれるのだが、変換の基準は以下のものに引っかかるものがfalseになる…
モジュールの部分はいらないんだけどな…というときに文字列処理をしなくても用意してくれている。 環境 $ bin/rails -v Rails 6.0.3.1 利用例 今回サンプルとして扱うのは以下のようなクラス module Hoge module Piyo class Test def initialize(test: nil) …
いろんなことの合せ技のためご利用は計画的に、という感じであるが知見まで。 環境 $ bin/rails -v Rails 6.0.3.1 今回の想定ケース 例えばUserクラスがあり、Viewにはidが2,3,1の順で並べたいのでActiveRecordの取得自体も2,3,1の順番で取得したい場合。 Us…
before_actionでインスタンス変数を設定するとミスリードが多くなりがちなのでそれに対する話。 (記事製作時)の環境 # bin/rails -v Rails 6.0.3.1 (前提として)before_actionとは ActionControllerが提供するフィルタの機能の一種。 before_action は ind…
個別に実装を剥がして行く場合のアプローチ 環境 # bin/rails -v Rails 6.0.3.1 今回想定するシチュエーション rails new したときにオプションで間引きたかったが間引き忘れたときにどうやって対応をしていくべきかというアプローチ 見るべきところ config/…
以下のツイートが気になったの調べた。 「create_or_find_by のコメントを読もう」で済む世界は最高— Takafumi ONAKA (@onk) 2020年10月27日 環境 $ bin/rails -v Rails 6.0.3.1 一覧 メソッド名 説明 find_or_create_by 対象を検索して、ない場合はCREATE(I…
小ネタ そもそもrawとは 通常、erbにて変数出力をするときは以下のような構文を用いる <%= @hoge_var %> この @hoge_var にHTMLが含まれる場合はRails側でよしなにエスケープ処理がかかり、文字列として表現されるようになる。 ただし、ただのまま変数の文字…
主にMySQL向け 環境 rails (5.0.2) やり方 カラム追加の記述の場合にafterを指定する。 例 name というカラムのあとに profile_text というカラムを足したい場合 class AddColumnHogeHoge < ActiveRecord::Migration[5.0] def change add_column :users, :pr…
Railsガイドにも乗ってますが、改めてコードを掘り下げて挙動を見る。 環境 $ bin/rails -v Rails 6.0.3.1 挙動 a = true a.blank? #=> false a = "" a.blank? # => true a = false a.blank? # => true ソースコードから読む かなり明快 def blank? respond_…
Railsだとmigrateファイルあるからいらんって言われがちだけどつけたいよね、っていうメモ 環境 rails (5.0.2) やり方 カラム指定時に comment: "書きたいコメント" をつければOK 例 class AddColumnHogeHoge < ActiveRecord::Migration[5.0] def change add…
パーフェクトRails読んでたら「まずはDockerイメージを作成する前に、サンプル用のRails アプリケーションを作成しましょう」と出てきたので、それすらも俺はDocker出やりたいんだ!と思ったので頑張ってみた 前提 dockerは使えるが、ローカルのrubyのバージ…
たまに広告用のタグとかもらったときに書き方忘れているのでメモ。PHPの軽量フレームワークではないです。 環境 slim-template/slimの下記バージョン slim (3.0.9) やり方 属性がいらない場合 javascript: のショートカットが使える javascript: alert('Slim…
refferenceの場合、indexが生成されるが自動生成のindex名が長くなってしまう場合の解消例 環境 bin/rails -v Rails 5.0.2 事象 referenceで指定した場合、Railsのindex名のルールが index_{{ベーステーブル名}}_on_{{リファレンス先のテーブル名}}_id のた…
スマホ向けにテンプレ分けたいわーというニーズ向け 環境 rails (5.0.2) Action Pack Variants とは Ruby on Rails 4.1 リリースノート - Railsガイド ざっと説明すると request.variant にシンボル値をセットすることで、そのシンボル値が付加されているvie…
ほう、こんなものが…という既存プロジェクトに入ってたgemをメモるシリーズ 出典 GitHub - zmbacker/enum_help: Help ActiveRecord::Enum feature to work fine with I18n and simple_form. 環境 rails (5.0.2) enum_help (0.0.17) 効能 gemを入れたら confi…
RAILS_ENVを意図的に設定しているとRSpecが動かない場面に遭遇するので気をつける、というメモ。 環境 rspec-rails (3.8.1) 該当記述 rails g rspec:install で生成されるファイルのテンプレートは以下のような記述になっている ENV['RAILS_ENV'] ||= 'test'…
あ、nilじゃなくてfalseなんだというメモ。 環境 gem 'rails', '= 5.0.2' やり方 Controllerに下記のように書く class HogeController < ApplicationController layout false 利用シーン 考えてみたが全然なく、今回利用した経緯としては 既存のテンプレート…
読み込み順番によって変わるやつ。ということで なるべく使わないほうがいい けど動作だけ 環境 rails (5.0.2) 動作概要 通常のviewテンプレートの yield の 記述の前に content_for を 含むpartialを render すれば出てくる。 逆にyield の 記述のあとに co…
よく忘れるのでメモ 環境 $ bin/rails -v Rails 5.2.2 使う機能 runnerコマンドを使うと、非対話的にRailsの文脈でRubyのコードを実行することができます。 - Rails のコマンドラインツール - Rails ガイド - 1.6 rails runner 使い方 $ bin/rails r "p User…
教訓的なメモ Railsの基本的なenvironment(env) Railsでデフォルトで存在するのは以下の3つ produciton(本番) test(テスト/Rspecなどの実行用) development(開発環境) envは増やせる、が このenv、増やすことができる。根本的には config/environments…
明確にズバーン!というのがなかったので書く 該当コード https://github.com/rails/rails/blob/6504d51a78a86a0994aa0f461e769e68d217361f/activesupport/lib/active_support/core_ext/date/calculations.rb#L48 Date.todayとは class Date (Ruby 2.6.0) - …
ソースコードを見ると明白なのでさらっとまじえつつ sizeとcountの処理の違い sizeは loaded? でロード状態であればサイズそのものを使う。以下は執筆時点masterのコード def size loaded? ? @records.length : count(:all) end いっぽうcountは特に回避コー…
Unite2019Tokyoを早めに切り上げて勉強会はしご、本業のほうのRailsの勉強会である、Rails Developers Beer Bash 〜Railsのトレンドとこれから〜 に行ってきたよメモ 各発表の感想 2週間でRails5.1 > Rails6 タイムアタックチャレンジ 資料でっす #railsbeer…