Ruby
【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】自前で匿名認証を実装する
· ☕ 3 åˆ†ã§èª­ã‚ã¾ã™
Railsチュートリアルのremember meの永続化Cookieの実装を参考にする。 「匿名認証」とは ここでは、 ユーザー登録・ログイン不要 ブ

【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

【Rails × Turbo】renderを出力するJS scriptをViewに書く
· ☕ 3 åˆ†ã§èª­ã‚ã¾ã™
概要 renderの中身をJSで増やす / 削除するようなJSをviewに直接書きました。 このやり方が調べても出てこなかったので、実装の一例として

【Rails】APIのルーティングのresourcesとmodule(具体例)
· ☕ 1 åˆ†ã§èª­ã‚ã¾ã™
Hashlogのエンドポイントを作るときにルーティング迷子になったので、単純に自分がやったものをまとめておく。 アソシエーション User -< Tags -< Tweets のよ

【Rails】fields_forで外部アカウント登録フォーム
· ☕ 5 åˆ†ã§èª­ã‚ã¾ã™
環境 Rails 6.1.3.2 Tailwind 2.2.4 実装するもの こんな感じのフォームです。 アイデアはQiitaから拝借しました。 アソシエーションと各カラムの値 アソシエーション User -< SocialAccount

【Rails】ネストされたattributes_paramsをフォームからコントローラに渡す
· ☕ 5 åˆ†ã§èª­ã‚ã¾ã™
はじめに フォームからネストされた値を渡し、ストロングパラメータとして取得するだけのサンプルコードです。 フォームオブジェクトはフォームオブジェ

【Rails】database.ymlって何?
· ☕ 3 åˆ†ã§èª­ã‚ã¾ã™
はじめに RUNTEQ内でチーム開発をしているのですが、みんな大好き環境構築は最初の難関でございます。 特にデータベースでハマったことがない人は

【Rails】複数レコードを一括操作するルーティング
· ☕ 1 åˆ†ã§èª­ã‚ã¾ã™
post has_many commentsのアソシエーション。 postに紐づくcommentを全て削除するとき、理想ならこんな感じのエンドポイントにしたい↓ DELETE /posts/:post_id/comments が

【Rails】index_byとgroup_byを用いて取り回しのきくハッシュを作成する
· ☕ 3 åˆ†ã§èª­ã‚ã¾ã™
要件の例 Question -< Answer >- User question has_many answers user has_many answers 問題があらかじめ用意されていて、ユーザーはそれぞれ問題に解答する(1問につき1解答)。 このとき、以下のようなペ

【Ruby】slack-notifierでユーザーグループにメンションを送る
· ☕ 1 åˆ†ã§èª­ã‚ã¾ã™
ユーザーへの通知 ユーザーグループIDの取得方法 ブラウザからSlackにアクセスする。 ユーザーグループを選択すると、URLがこんな感じになるの

【Ruby】業務で得た小ネタ的知識まとめ
· ☕ 1 åˆ†ã§èª­ã‚ã¾ã™
自分が指摘されたり、書いてあるコードを見て「なるほど〜〜」と思ったやつ。 フルネーム表記の仕方 1 2 3 "#{last_name}#{first_name}" # じゃなくて [last_name, first_name].compact.join(' ') 「1対多(0)もあり」