Ruby, Rails
問題のテーブル設計
· ☕ 1 分で読めます
問題/回答のテーブル設計 question number (integer) thesis (text) commentary (text) is_correct (boolean) answer question_id user_id answer_status (enum correct, incorrect, uncertain) answer_correct (boolean) regular_practice_exercise_template title (string) timelimit_seconds (integer) question_count (integer) # 1 演習あたりの問題数 first_started_at (datetime) first_finished_at (datetime) cycle_count (integer) cycle_type (enum daily, weekly, monthly) # 演習周期(n 日/週
【Ruby】Enumeratorユースケース / 遅延評価で配列を取得する
【Rails】URLからコントローラやアクション、paramsを取得する
【Rails】find, updateを備えたフォームオブジェクト
【Awesome Nested Set】レコードの位置を動かすメソッドまとめ
· ☕ 1 分で読めます
Awesome Nested Setはツリー構造を表すことのできるgemの1つです。 インスタンスメソッドのまとめは下記ページにまとまっています。 Awesome nested set cheat sheet まとめ ちなみ
【Rails】#class_name を実行するためには pry-doc をインストールする必要がある
· ☕ 1 分で読めます
本番環境では以下のようなエラーが出ました。 NoMethodError (undefined method `class_name' for #<Class:0x000000000c6fc208>) Did you mean? class_eval ローカルでは実行できたので、検証してみました。 1 2 3 4 5 6 7 8 9 [1] pry(main)> user = User.first User Load
【RSpec】たまに使うちょっとトリッキーなマッチャ
· ☕ 1 分で読めます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 # subjectがArrayクラスであることを検証する it { is_expected.to be_kind_of Array } # 全要素がH
【Rails】countのN+1問題を解消する
· ☕ 2 分で読めます
前提 関連付け:users -< products 1 2 3 4 5 class UsersController < ApplicationController def index @users = User.all end end 1 2 3 4 <% @users.each do |user| %> <%= user.display_name %> (<%= user.products.count %>) <% end %> この場合、user.products.cou
【Rails × Tailwind】Tailwindだけで画像スライダー
· ☕ 1 分で読めます
こういうのです。 参考元はTailwind carousel component - examples & templates できるだけ生CSSを書かずにTailwindで実装しました。 前提 Imageモデルのnam
【Rails × Turbo】TurboStreamを使って非同期処理でお気に入りボタン
【Rails】date_field, datetime_field, time_fieldの初期値の形式
【Rails】ago, sinceとmonthを組み合わせるときの月末の仕様
· ☕ 2 分で読めます
まずはこれを見てほしい。 1 2 3 4 5 [1] pry(main)> Time.parse('2021-8-30').since(1.month) => 2021-09-30 00:00:00 +0900 [2] pry(main)> Time.parse('2021-8-31').since(1.month) => 2021-09-30 00:00:00 +0900 それぞれ、「8月30日の1ヶ月後」「8月31日の1ヶ月後」という意味だ。しかし
【Rails】自前で匿名認証を実装する
【Rails】Zeitwerkの名前空間の競合を無視する
· ☕ 2 分で読めます
環境 Ruby 3.0.2 Rails 6.1.4 エラー文 gem 'config'でbundle installをして、意気揚々とrails g config:installしたところ、以下
【Rails】ルーティングのカスタムparamとform_withの自動生成URLを両立する
· ☕ 2 分で読めます
環境 Ruby 3.0.2 Rails 6.1.4 前提 ルーティングでURLの動的な値に好きなカラム(今回はuuid)を指定する。 これによって、/articles/1などの単純な連
【Ruby】HanamiでHello World→Herokuデプロイ
· ☕ 2 分で読めます
環境 Ruby 2.7.4 Hanami 1.3.4 MySQL 8.0.23 Heroku CLI 7.56.1 ローカル環境構築 まず、HanamiはRuby3では使えないらしい。 Cannot create new hanami application · Issue #1108 · hanami/hanami Boot Error Something went wrong while loading /Users/k_end/personal/groovy_grouping/config.ru Hanami::Model::Error: PG::ConnectionBad: could not connect to server: Connection
SQL勉強会をやりました【レポ】
· ☕ 5 分で読めます
RUNTEQの有志でSQL勉強会をしました。 これはその記録です。 題材 PostgreSQL Sample Database このDBで、1人1問ずつ用意して15分で解こうといったものでした。
【Rails × Turbo】renderを出力するJS scriptをViewに書く
【Rails】APIのルーティングのresourcesとmodule(具体例)
· ☕ 1 分で読めます
Hashlogのエンドポイントを作るときにルーティング迷子になったので、単純に自分がやったものをまとめておく。 アソシエーション User -< Tags -< Tweets のよ