---
title: "ruby on rails | 今日の学び | OOZOU"
description: "OOZOUチームによる短く実践的なruby on railsのメモ。"
canonical: https://oozou.com/ja/til-topics/ruby-on-rails
locale: ja
---

# ruby on rails | 今日の学び

> OOZOUチームによる短く実践的なruby on railsのメモ。

- [Punditポリシーで許可パラメータをデフォルトとアクション別に管理する](https://oozou.com/ja/til/use-pundit-policies-to-manage-permitted-parameters-defaults-and-per-action-188) ([markdown](https://oozou.com/ja/til/use-pundit-policies-to-manage-permitted-parameters-defaults-and-per-action-188.md)) (2022-02-10): 許可パラメータを管理するには、ポリシーに permitted\attributes と permitted\attributes\for\#{action} を追加します。例：
- [Turboでのフォーム送信には `requestSubmit` を使う](https://oozou.com/ja/til/use-requestsubmit-for-form-submits-with-turbo-155) ([markdown](https://oozou.com/ja/til/use-requestsubmit-for-form-submits-with-turbo-155.md)) (2022-01-31): Turboはformのsubmitイベントをリッスンします。そのため、JSでフォームを送信するときは必ず requestSubmit を使いましょう。
- [GitHub Actions で Rubocop と ESLint にバンドルされた gem を無視させる](https://oozou.com/ja/til/ignore-bundled-gems-for-rubocop-and-eslint-in-github-actions-154) ([markdown](https://oozou.com/ja/til/ignore-bundled-gems-for-rubocop-and-eslint-in-github-actions-154.md)) (2022-01-19): Rails プロジェクトでは、GitHub Actions で gem を vendor ディレクトリにインストールして、以降の実行でキャッシュできるようにすることがよくあります。
- [Rails 6、Ruby 3、Bootstrap 5 と Hotwire](https://oozou.com/ja/til/rails-6-ruby-3-bootstrap-5-and-hotwire-115) ([markdown](https://oozou.com/ja/til/rails-6-ruby-3-bootstrap-5-and-hotwire-115.md)) (2021-04-18): Bootrails のブログ記事を Hotwire で拡張します：   この TIL を書いている時点での最新のあれこれ：
- [Rails の Cache-Control](https://oozou.com/ja/til/rails-cache-control-77) ([markdown](https://oozou.com/ja/til/rails-cache-control-77.md)) (2020-10-27): Heroku で静的アセットの cache-control ヘッダーを設定し、CDN を使えるようにするには：
- [Heroku の rails console での入力を修正する](https://oozou.com/ja/til/fix-input-on-heroku-s-rails-console-73) ([markdown](https://oozou.com/ja/til/fix-input-on-heroku-s-rails-console-73.md)) (2020-10-14): Heroku (やその他の環境) の rails console にたくさんの行を貼り付けると、行同士が「にじんで」混ざってしまう問題が起きることがあります。
- [RailsでDOM用の一意なIDを生成する](https://oozou.com/ja/til/unique-id-for-dom-in-rails-75) ([markdown](https://oozou.com/ja/til/unique-id-for-dom-in-rails-75.md)) (2020-10-14): Railsには優れたビューヘルパーが数多くあり、そのひとつが dom\id:* です
- [Rails 5 の attributes API に新しい型を追加する](https://oozou.com/ja/til/add-new-types-to-rails-5-attributes-api-13) ([markdown](https://oozou.com/ja/til/add-new-types-to-rails-5-attributes-api-13.md)) (2020-10-13): Rails 5 の attributes API を使うと、フォームオブジェクトをとても簡単に作れます。
- [HTTP を介さずに ActiveStorage にファイルを添付する](https://oozou.com/ja/til/attaching-file-to-activestorage-without-http-19) ([markdown](https://oozou.com/ja/til/attaching-file-to-activestorage-without-http-19.md)) (2020-10-13): ディスク上に生成したファイルや、ユーザーが送信した URL からダウンロードしたファイルを添付したい場合は、次のようにできます。
- [Enumerable から Hash を作成する (Rails 6.0)](https://oozou.com/ja/til/create-a-hash-from-an-enumerable-rails-6-0-6) ([markdown](https://oozou.com/ja/til/create-a-hash-from-an-enumerable-rails-6-0-6.md)) (2020-10-13): Enumerable から Hash を作成できる新しいメソッドです：
- [冪等なマイグレーションを作成する](https://oozou.com/ja/til/create-idempotent-migrations-28) ([markdown](https://oozou.com/ja/til/create-idempotent-migrations-28.md)) (2020-10-13): 破壊的なマイグレーションを書くときは、テーブルを削除する場合には if\exists: true を使い、カラムを追加または削除する場合にはテーブルの存在を確認してください…
- [プロジェクト内の god object を見つける方法（Rails）](https://oozou.com/ja/til/how-to-find-god-objects-in-your-project-rails-40) ([markdown](https://oozou.com/ja/til/how-to-find-god-objects-in-your-project-rails-40.md)) (2020-10-13): プロジェクトルートに移動し、app/models へ cd して（もちろん CLI で）、wc -lw \ | sort -u* を実行します
- [別のアクションに送信する HTML フォーム](https://oozou.com/ja/til/html-forms-that-submit-to-another-action-10) ([markdown](https://oozou.com/ja/til/html-forms-that-submit-to-another-action-10.md)) (2020-10-13): 送信ボタンに値を持たせて送信すれば、どのボタンでフォームが送信されたかを追跡できることは以前から知っていました。例：
- [以前に設定した order を上書きしたい場合](https://oozou.com/ja/til/if-you-want-to-override-previously-set-order-25) ([markdown](https://oozou.com/ja/til/if-you-want-to-override-previously-set-order-25.md)) (2020-10-13): 以前に設定した order を（default\_scope 経由のものでも）上書きしたい場合は、代わりに reorder() を使いましょう。
- [数を制限した has_many 関連](https://oozou.com/ja/til/limited-has_many-associations-31) ([markdown](https://oozou.com/ja/til/limited-has_many-associations-31.md)) (2020-10-13): 数を制限した has_many 関連
- [モデル名を一覧表示する](https://oozou.com/ja/til/list-your-model-names-58) ([markdown](https://oozou.com/ja/til/list-your-model-names-58.md)) (2020-10-13): 注意: RUBYOPT=-W0 は rails コマンド実行時の冗長な出力を抑え、警告を非表示にします。
- [Postgres の関数と Non-sargable なクエリ](https://oozou.com/ja/til/postgres-functions-non-sargable-queries-48) ([markdown](https://oozou.com/ja/til/postgres-functions-non-sargable-queries-48.md)) (2020-10-13): postgres の関数を where 句の中で使うと、クエリが non-sargable になることがあります。
- [PostgreSQL の UPDATE Join ](https://oozou.com/ja/til/postgresql-update-join-64) ([markdown](https://oozou.com/ja/til/postgresql-update-join-64.md)) (2020-10-13): このクエリは、PostgreSQL の UPDATE join 構文を使って、別のテーブルの値をもとにテーブルのデータを更新する方法を示しています。たとえば：
- [RailsでscopeとscopeをORで組み合わせる](https://oozou.com/ja/til/scope-or-scope-in-rails-11) ([markdown](https://oozou.com/ja/til/scope-or-scope-in-rails-11.md)) (2020-10-13): scope :human, -> { user.or(author) } scope :terminator, -> { admin.or(robot) } `
- [RailsアプリのTODOやその他のノートを表示する](https://oozou.com/ja/til/show-todo-and-other-notes-in-your-rails-app-7) ([markdown](https://oozou.com/ja/til/show-todo-and-other-notes-in-your-rails-app-7.md)) (2020-10-13): rails notes を使うと、RailsアプリのすべてのTODO/OPTIMIZE/FIXMEを表示できるのをご存じですか？
- [Railsのログに有用な情報をタグ付けする](https://oozou.com/ja/til/tag-rails-logs-with-useful-information-32) ([markdown](https://oozou.com/ja/til/tag-rails-logs-with-useful-information-32.md)) (2020-10-13): Railsのタグ付きロギングについて最近学びました。次のようにしてログにタグを付けられるのをご存じですか
- [コレクションのJSONスキーマでminItems/maxItemsを使う](https://oozou.com/ja/til/use-minitems-maxitems-in-collection-json-schemas-1) ([markdown](https://oozou.com/ja/til/use-minitems-maxitems-in-collection-json-schemas-1.md)) (2020-10-13): コレクションのJSONスキーマの信頼性を高めるには、minItems と maxItems を使いましょう。そうすればAPIを信頼できるようになります。

All notes: [今日の学び](https://oozou.com/ja/til) ([markdown](https://oozou.com/ja/til.md)).

---

Contact OOZOU: hello@oozou.com · +66 2544 0000 · https://oozou.com/ja/contact

More for AI agents: https://oozou.com/llms.txt · every page has a markdown twin at its URL plus ".md"
