- Feb 23, 2024
hkob’s blogコメントの turbo frame 化: 小林研 Rails Tips (85) - hkob’s blog
コメントの turbo frame 化: 小林研 Rails Tips (85) - hkob’s blog
RailsTips 第85回では、コメントの追加・編集・削除の部分をTurboFrame化し、ページ遷移なしで更新できるようにする方法を紹介しています。また、FlashメッセージをTurboFrameで扱うための工夫についても述べています。TurboFrameは一箇所しか更新できないため、Flashメッセージが更新でき…
- Feb 22, 2024
hkob’s blogユーザ周りの修正: 小林研 Rails Tips (84) - hkob’s blog
ユーザ周りの修正: 小林研 Rails Tips (84) - hkob’s blog
RailsTipsの84回目では、ユーザー関連のいくつかの不具合を修正しました。ログインしていないときに新しい記事を作成できないようにし、ログインリンクを追加しました。また、ユーザーの名前が空であった問題も解決しました。コメントの追加もログインしているユーザーのみに制限しました。最初から設計をしっかり行わないと、このよ…
- Feb 21, 2024
hkob’s blogコメントにユーザを追加(コントローラの修正): 小林研 Rails Tips (83) - hkob’s blog
コメントにユーザを追加(コントローラの修正): 小林研 Rails Tips (83) - hkob’s blog
Rails Tips の 83 回目では、ユーザーをコメントに追加する方法を学びました。モデルにユーザーを追加した後、request spec を修正し、コントローラが正しく動作するように変更します。ビューも同様に修正し、特に articles/comments/_form.html.haml と articles/c…
- Feb 20, 2024
hkob’s blogコメントにユーザを追加: 小林研 Rails Tips (82) - hkob’s blog
コメントにユーザを追加: 小林研 Rails Tips (82) - hkob’s blog
RailsTipsの82回目は、コメントにもユーザーを追加する方法を説明しています。記事と同様、コメントにもuser_idを追加しますが、コメントのuser_idにはnullが許可されている点が異なります。これはユーザーが削除された時に、ユーザーなしのコメントを残すことを可能にするためです。(要約 by Notion …
- Feb 19, 2024
hkob’s blog記事のビュー更新 (ユーザ権限): 小林研 Rails Tips (81) - hkob’s blog
記事のビュー更新 (ユーザ権限): 小林研 Rails Tips (81) - hkob’s blog
Rails Tipsの81回目では、所有しないオブジェクトに対する編集や削除のリンクを発生させない方法を紹介しました。記事の執筆者を列に追加し、editとdestroyのリンクの前にowned_by?で権限を確認することがポイントです。また、ユーザ関係の処理を記事に適用しました。次回はコメントにもユーザを追加する予定で…
- Feb 18, 2024
hkob’s blog所有しないオブジェクトの処理(テストを追加): 小林研 Rails Tips (80) - hkob’s blog
所有しないオブジェクトの処理(テストを追加): 小林研 Rails Tips (80) - hkob’s blog
RailsTips 80回目では、所有権を確認するテストおよび実装を行いました。所有しないオブジェクトに対するeditの対応が済み、updateやdestroyも対応が完了しています。テストで対応が済んでいることを確認しました。明日はこれに合わせてindexなどの描画を修正します。(要約 by Notion AI)
- Feb 17, 2024
hkob’s blog所有しないオブジェクトの処理: 小林研 Rails Tips (79) - hkob’s blog
所有しないオブジェクトの処理: 小林研 Rails Tips (79) - hkob’s blog
Rails Tipsの79回目では、所有しないオブジェクトに対する編集の対応を行いました。所有しないオブジェクトに対するアクセスを防ぐため、記事の所有者を確認するメソッドを追加しました。これにより、所有権がない場合にはトップページにリダイレクトします。また、所有権を確認するメソッドは他のアクションでも有効ですが、そのテ…
- Feb 16, 2024
hkob’s blog記事モデルのテスト追加: 小林研 Rails Tips (78) - hkob’s blog
記事モデルのテスト追加: 小林研 Rails Tips (78) - hkob’s blog
Rails Tipsの78回目では、記事が特定のユーザーの所有物かどうかを確認するメソッドowned_by?と、記事を書いたユーザーの名前を取得するメソッドuser_nameの実装とそのテストについて解説しています。owned_by?メソッドはユーザーIDの比較、user_nameメソッドはdelegateを使用して実…
- Feb 15, 2024
hkob’s blogログインのテスト: 小林研 Rails Tips (77) - hkob’s blog
ログインのテスト: 小林研 Rails Tips (77) - hkob’s blog
Rails Tips の 77 回目では、ユーザがログインした状態でのテストを行います。ログイン状態では Devise::Test::IntegrationHelpers を spec/rails_helper.rb に追加し、ログインするためのメソッドを作成します。記事の閲覧はログインしていなくても可能ですが、記事の…
- Feb 14, 2024
hkob’s blog記事にユーザを追加: 小林研 Rails Tips (76) - hkob’s blog
記事にユーザを追加: 小林研 Rails Tips (76) - hkob’s blog
RailsTipsの76回目では、Railsアプリケーションにユーザー認証を追加する方法を説明しています。Deviseを用いてローカル認証の作成を行い、その結果としてユーザー登録が可能になりました。続いて、記事にユーザーID属性を追加し、ログインしたユーザーだけが自分の記事を編集できる仕組みを作りました。また、テストに…
- Feb 13, 2024
hkob’s blogローカル devise 認証の作成: 小林研 Rails Tips (75) - hkob’s blog
ローカル devise 認証の作成: 小林研 Rails Tips (75) - hkob’s blog
RailsTipsの75回目では、OAuth2の認証の挑戦が失敗したため、一度ローカルの認証に焦点を当てています。git revertを使用して前日の作業を取り消し、deviseでローカルログインを実装します。また、i18nバージョンも追加しています。deviseのインストール後、Userモデルを再作成し、tracka…
- Feb 12, 2024
hkob’s blogOAuth2 認証の実装: 小林研 Rails Tips (74) - hkob’s blog
OAuth2 認証の実装: 小林研 Rails Tips (74) - hkob’s blog
Rails Tips の 74 回目では、Google の OAuth 認証の導入について解説しています。まず、Google Cloud でプロジェクトを作成し、OAuth 同意画面から OAuth 2.0 クライアント ID を作成します。その情報を Rails の credentials に登録後、認証関連の ge…
- Feb 11, 2024
hkob’s blogVisible module の実装: 小林研 Rails Tips (73) - hkob’s blog
Visible module の実装: 小林研 Rails Tips (73) - hkob’s blog
Rails Tipsの73回目では、Visible moduleの導入と実装が行われました。記事とコメントの両方でテストされたarchived?メソッドは、statusがarchivedであるときにtrueを返します。このメソッドはVisible moduleにMix-inされ、テストも通過しました。また、reques…
- Feb 10, 2024
hkob’s blog値限定制約 shared example: 小林研 Rails Tips (72) - hkob’s blog
値限定制約 shared example: 小林研 Rails Tips (72) - hkob’s blog
RailsTipsの72回目では、status属性に値限定制約を設定しました。この属性はpublic, private, archivedのみ設定可能で、これをテストするための値限定制約というshared exampleを作成しました。また、ArticleとCommentのmodelにそれぞれ存在制約と値限定制約を追加…
- Feb 9, 2024
hkob’s blogstatus 属性を追加する: 小林研 Rails Tips (71) - hkob’s blog
status 属性を追加する: 小林研 Rails Tips (71) - hkob’s blog
RailsTipsの71回目では、「concernを使う」について学びます。まず、記事とコメントの両方にステータス属性を追加するためのマイグレーションファイルを作成します。ステータスにはpublic、private、archivedしか入れることができませんが、そのテストは次回に持ち越されます。今回は存在制約だけをテス…
- Feb 8, 2024
hkob’s blogコメント削除のテストと実装を記述する: 小林研 Rails Tips (70) - hkob’s blog
コメント削除のテストと実装を記述する: 小林研 Rails Tips (70) - hkob’s blog
このRailsTipsの70回目では、コメント削除機能のテストと実装を記述します。まずはコメントを表示している部分テンプレートに削除リンクを追加し、その後に新規フォームが表示されないようにします。次にテストを記述し、最後に削除処理を記述します。これでガイドからの脱線部分は終了します。(要約 by Notion AI)
- Feb 7, 2024
hkob’s blogコメント編集のテストと実装を記述する: 小林研 Rails Tips (69) - hkob’s blog
コメント編集のテストと実装を記述する: 小林研 Rails Tips (69) - hkob’s blog
RailsTipsの69回目では、コメントの編集機能のテストと実装について記述されています。記事では、部分テンプレートの変更、新規コメントの設定、新規用フォームと更新用フォームの表示制御、テストの記述、実装の詳細について説明されています。また、次回はコメントの削除機能について取り組む予定です。(要約 by Notion…
- Feb 6, 2024
hkob’s blogコメント追加のテストと実装を記述する: 小林研 Rails Tips (68) - hkob’s blog
コメント追加のテストと実装を記述する: 小林研 Rails Tips (68) - hkob’s blog
RailsTipsの68回目では、コメントの追加機能のテストと実装を行いました。記事では、テストケースの作成とその結果に基づく実装を詳しく説明しています。具体的には、submitボタンを押したときに動作するcreateアクションのテストを行い、その結果を基に articles/comments_controller.r…
- Feb 5, 2024
hkob’s blogパーシャルのフォームをレンダリングする: 小林研 Rails Tips (67) - hkob’s blog
パーシャルのフォームをレンダリングする: 小林研 Rails Tips (67) - hkob’s blog
RailsTips 67では、コメントのエラーに対する対応を改善するための方法を説明しています。Railsガイドのコードを改良し、formの部分を部分テンプレートにしました。また、エラーが発生したオブジェクトが捨てられないように、新規オブジェクトを作る代わりにインスタンス変数を使用します。さらに、コメントを降順で表示す…
- Feb 4, 2024
hkob’s blogコントローラを生成する: 小林研 Rails Tips (66) - hkob’s blog
コントローラを生成する: 小林研 Rails Tips (66) - hkob’s blog
RailsTips 66回目では、articles/comments_controller.rbを追加する方法が説明されています。この記事では、ネストしたコントローラの作成方法と、生成されたRequest specを書き換える手順を詳しく説明しています。また、記事の最後では、今後のコメントの追加方法について説明する予定…
- Feb 3, 2024
hkob’s blogコメントへのルーティングを追加する: 小林研 Rails Tips (65) - hkob’s blog
コメントへのルーティングを追加する: 小林研 Rails Tips (65) - hkob’s blog
RailsTipsの65回目では、Comment モデルに対するルーティング設定を行いました。Rails ガイドに従い、コメントを追加するコントローラのためのルーティングを追加しました。ただし、ガイドではフラットなコントローラを使っていますが、ルーティングだけでなくコントローラもネストしたものにしました。また、bin/…
- Feb 2, 2024
hkob’s blog第2のモデルのテストを追加する: 小林研 Rails Tips (64) - hkob’s blog
第2のモデルのテストを追加する: 小林研 Rails Tips (64) - hkob’s blog
Rails Tips 第64回目では、Comment モデルのテストについて記載します。まず属性に関するテストを実施し、それぞれの属性に対して存在制約を追加します。また、関連性の確認と親モデルの削除時に子モデルも削除されることを確認するテストを記述します。最後に、属性「body」の長さに関するテストを追加します。これら…
- Feb 1, 2024
hkob’s blog第2のモデルを追加する: 小林研 Rails Tips (63) - hkob’s blog
第2のモデルを追加する: 小林研 Rails Tips (63) - hkob’s blog
第63回の RailsTips では、第二のモデルである Comment モデルの追加について説明されています。新たに作成された Comment モデルは、Article モデルへの参照を保持します。また、commenter と body には null: false を追加しています。さらに、手動で記述していた ar…
- Jan 31, 2024
hkob’s blogTurbo 環境の構築: 小林研 Rails Tips (62) - hkob’s blog
Turbo 環境の構築: 小林研 Rails Tips (62) - hkob’s blog
Rails Tips の 62 回目は、TurboとImportmapの環境構築について説明しています。インストール時にbundleをスキップしたため、JavaScriptなどの設定もスキップされていたとのこと。そのため、まずはimportmapをインストールした後、application.html.hamlにjava…
- Jan 30, 2024
hkob’s blog記事を削除する: 小林研 Rails Tips (61) - hkob’s blog
記事を削除する: 小林研 Rails Tips (61) - hkob’s blog
Rails Tips の 61 回目では記事の削除機能の実装を中心に解説しています。記事の削除に必要な destroy メソッドの設定、テストの作成、そして destroy の実装について詳しく説明があります。また、記事の一覧表示ページに削除のリンクを追加する方法も紹介されています。しかし、現段階では「削除」リンクが期…
- Jan 29, 2024
hkob’s blog記事を更新する: 小林研 Rails Tips (60) - hkob’s blog
記事を更新する: 小林研 Rails Tips (60) - hkob’s blog
RailsTipsの60回目では、記事を更新するeditとupdateを実装します。まず、テストを記述し、正しいパラメータと不正なパラメータの両方でupdateを検証します。次に、共通の処理をbefore_actionでまとめ、showとeditの実装を省略します。最後に、updateの実装を行い、記事が更新できるよう…
- Jan 28, 2024
hkob’s blog記事を1件作成する(続き): 小林研 Rails Tips (59) - hkob’s blog
記事を1件作成する(続き): 小林研 Rails Tips (59) - hkob’s blog
RailsTipsの第59回目では、createアクションの実装とテストについて解説します。記事の作成のためのパラメータを受け取り、その結果を新しい記事として保存するcreateアクションの作成を行います。成功時には作成された記事のページにリダイレクトし、失敗時にはnewを再描画します。また、notice_messag…
- Jan 27, 2024
hkob’s blog記事を1件作成する: 小林研 Rails Tips (58) - hkob’s blog
記事を1件作成する: 小林研 Rails Tips (58) - hkob’s blog
RailsTipsの第58回では、新しい記事を作成するための新規作成ページを実装します。まず、新しい記事のオブジェクトを作成し、その後、そのオブジェクトを描画します。そのために、翻訳文字列を追加し、フォームの作成を行います。また、以前紹介した form_label_and_error ヘルパーを使用します。最後に、新し…
- Jan 26, 2024
hkob’s blog記事を1件表示する: 小林研 Rails Tips (57) - hkob’s blog
記事を1件表示する: 小林研 Rails Tips (57) - hkob’s blog
RailsTipsの57回目では、記事の一覧表示に続き、記事を1件表示する部分のテストと実装について説明しています。具体的には、showアクションを作成し、コントローラで取得した@articleをビューで描画する方法について説明しています。また、記事一覧に各記事へのリンクを追加するためのlotfpヘルパーの実装について…
- Jan 25, 2024
hkob’s blog記事のリストを表示する: 小林研 Rails Tips (56) - hkob’s blog
記事のリストを表示する: 小林研 Rails Tips (56) - hkob’s blog
RailsTipsの56回目では、記事のリストを表示する部分の実装が行われました。まず、テストを修正し、「記事一覧」、「タイトル」が描画されていることを確認しました。次に、app/controllers/articles_controller.rbで@articlesを取得し、app/views/articles/in…
- Jan 24, 2024
hkob’s blogモデルの属性テスト: 小林研 Rails Tips (55) - hkob’s blog
モデルの属性テスト: 小林研 Rails Tips (55) - hkob’s blog
RailsTipsの55回目では、モデルの属性に関するテストを行いました。articles_spec.rbを修正し、titleとbodyが空のときにバリデーションに引っかかることを確認しました。また、article.rbに存在制約と文字数制約を追加し、テストが通ることを確認しました。さらに、Rails consoleを…
- Jan 23, 2024
hkob’s blogmodel_spec の準備とモデルの生成: 小林研 Rails Tips (54) - hkob’s blog
model_spec の準備とモデルの生成: 小林研 Rails Tips (54) - hkob’s blog
RailsTipsの54回目では、新たなモデルの作成について解説しています。まず、モデルのテスト用テンプレートの準備を行い、次にモデルの生成を行います。これにより、titleとbodyの属性を持つarticleモデルが作成されます。最後に、データベースのマイグレーションを行います。すべての作業が完了したら、テストを実施…
- Jan 22, 2024
hkob’s blogタイトルを content_for で出力: 小林研 Rails Tips (53) - hkob’s blog
タイトルを content_for で出力: 小林研 Rails Tips (53) - hkob’s blog
Rails Tipsの53回目では、ホームページの作成と、HTML自体のタイトルにページタイトルを表示する方法を学びました。具体的には、routes.rbのrootを設定してホームページにアクセスできるようにし、その後、localesでタイトルを登録。また、content_forを使用してHTMLタイトルを動的に変更す…
- Jan 21, 2024
hkob’s blogRailsで「Hello」と表示する: 小林研 Rails Tips (52) - hkob’s blog
Railsで「Hello」と表示する: 小林研 Rails Tips (52) - hkob’s blog
RailsTipsの52回目では、データベースのエラーから始まり、データベースの作成、設定、テストを進めています。PostgreSQLの設定、Railsの設定、そしてテストについて詳しく説明しています。また、Railsガイドに戻り、「Hello, Rails!」を表示するためのルーティングとコントローラを作成しています…
- Jan 20, 2024
hkob’s blogWeb サーバを起動する : 小林研 Rails Tips (51) - hkob’s blog
Web サーバを起動する : 小林研 Rails Tips (51) - hkob’s blog
RailsTips第51回では、Webサーバの起動確認を行いました。コントローラのテンプレートは適用できなかったため、今回はスキップしています。サーバの起動確認の結果、データベースが見つからないエラーが出ました。このエラーはデータベースの設定がまだ行われていないためです。今後はデータベースの設定と、Hello worl…
- Jan 19, 2024
hkob’s blogrequest_spec テンプレートの準備 : 小林研 Rails Tips (50) - hkob’s blog
request_spec テンプレートの準備 : 小林研 Rails Tips (50) - hkob’s blog
Rails Tips の 50 回目では、新たに controller を作成する前に template を用意する方法を紹介しています。テンプレートの作成と設定方法を詳しく説明し、request_spec の中身についても触れています。また、今回のテンプレートは、CRUDの7つのアクションのテスト記述に使われます。次…
- Jan 18, 2024
hkob’s blogi18n の設定 : 小林研 Rails Tips (49) - hkob’s blog
i18n の設定 : 小林研 Rails Tips (49) - hkob’s blog
RailsTips 49回目では、i18nの設定方法について解説しています。特に、config/application.rbの設定変更、config/locales/ja.ymlの準備と保存方法について具体的に説明されています。この記事を通じて、Railsプロジェクトにおける多言語対応の基本的な設定方法を理解することが…
- Jan 17, 2024
hkob’s blogerb を haml に変換 : 小林研 Rails Tips (48) - hkob’s blog
erb を haml に変換 : 小林研 Rails Tips (48) - hkob’s blog
RailsTipsの48回目では、viewのerbファイルをhamlに変換する方法について解説しています。まず、html2hamlをインストールし、Railsのコマンドでerbをhamlに変換します。変換後のhamlは、htmlの閉じタグを気にする必要がないため、viewの記述が非常に簡単になります。(要約 by No…
- Jan 16, 2024
hkob’s blogRSpec, Guard の設定 : 小林研 Rails Tips (47) - hkob’s blog
RSpec, Guard の設定 : 小林研 Rails Tips (47) - hkob’s blog
RailsTips の 47 回目では、テストフレームワークRSpecとGuardの設定について解説しています。RSpecのインストールと設定、Guardのインストールと設定、それぞれの手順が詳細に説明されています。RSpecはRails以外でも利用されるため、設定ファイルはRSpec自体のものとRailsに関するもの…
- Jan 15, 2024
hkob’s blogブログアプリケーションを作成する : 小林研 Rails Tips (46) - hkob’s blog
ブログアプリケーションを作成する : 小林研 Rails Tips (46) - hkob’s blog
RailsTipsの46回目では、新しいブログアプリケーションの作成を試みました。PostgreSQLの設定が完了し、rails newを使用してアプリケーションを作成しました。しかし、bundle installを試みたところエラーが発生しました。この問題は明日再度調査する予定です。また、問題が解決しない場合はRub…
- Jan 14, 2024
hkob’s blogPostgreSQL 環境の設定 : 小林研 Rails Tips (45) - hkob’s blog
PostgreSQL 環境の設定 : 小林研 Rails Tips (45) - hkob’s blog
これは RailsTips の45回目で、PostgreSQL の設定について説明しています。SQLite3 から PostgreSQL への移行の理由と必要性について述べ、PostgreSQL のインストールと設定、バージョンアップの方法について詳しく解説しています。最後に、新たに 'blog' というユーザを作成し…
- Jan 13, 2024
hkob’s blogRails のインストール : 小林研 Rails Tips (44) - hkob’s blog
Rails のインストール : 小林研 Rails Tips (44) - hkob’s blog
これは RailsTips の 44 回目で、今回は Rails のインストールについて説明しています。この投稿では具体的なインストールコマンドを紹介し、どのようにバージョンを確認するかを示しています。また、「rails new」コマンドのオプションについて詳しく説明し、自分が修正したいパラメータについても共有していま…
- Jan 12, 2024
hkob’s blogRuby 3.3.0 のインストール : 小林研 Rails Tips (43) - hkob’s blog
Ruby 3.3.0 のインストール : 小林研 Rails Tips (43) - hkob’s blog
本文はRails Tipsの43回目であり、Ruby on Rails構築手順の解説が主題です。特に、Rubyのインストールに重点が置かれています。macOSにデフォルトでインストールされているRubyではなく、rbenvを用いてRuby 3.3.0をインストールする手順が詳しく説明されています。また、それに続くRai…
- Jan 11, 2024
hkob’s blogform_labels_and_errors ヘルパー : 小林研 Rails Tips (42) - hkob’s blog
form_labels_and_errors ヘルパー : 小林研 Rails Tips (42) - hkob’s blog
本記事では、Rails Tipsの42回目として、フォームのラベルとエラーを表示するヘルパーform_label_and_errorと、ラベル行を作成する際に利用するform_labels_and_errorsヘルパーについて紹介します。これらのヘルパーを利用することで、縦型・横型のどちらのフォームでもラベル描画が楽に…
- Jan 10, 2024
hkob’s blogform_label_and_error ヘルパー : 小林研 Rails Tips (41) - hkob’s blog
form_label_and_error ヘルパー : 小林研 Rails Tips (41) - hkob’s blog
Rails Tipsの41回目では、form_label_and_errorヘルパーを紹介します。このヘルパーは、formのラベルとエラーを同時に表示します。通常、form、model、属性名を渡し、エラーがあった場合にはエラーも表示します。追加テキストも設定可能です。エラーメッセージの描画が定型的であるため、このヘル…
- Jan 9, 2024
hkob’s blogwrite_menu ヘルパー : 小林研 Rails Tips (40) - hkob’s blog
write_menu ヘルパー : 小林研 Rails Tips (40) - hkob’s blog
この記事では、Rails Tipsの40回目として、メニューページの作成を簡単にする write_menu ヘルパーの作成と使用法について説明します。write_menu ヘルパーはパス名を記述するだけでメニューを作成でき、様々なオプションを指定することでリンクタイトルの変更や権限確認の設定などが可能です。このヘルパー…
- Jan 8, 2024
hkob’s blogdestroy_lotfp ヘルパー : 小林研 Rails Tips (39) - hkob’s blog
destroy_lotfp ヘルパー : 小林研 Rails Tips (39) - hkob’s blog
Rails Tipsの39回目では、destroy_lotfpヘルパーについて説明します。destroy_lotfpは、lotfpヘルパーを拡張し、リンクの生成だけでなく、destroy操作時の確認メッセージも自動的に追加する機能を提供します。これにより、確認メッセージの作成を忘れることがなくなり、コードの記述も簡単に…
- Jan 7, 2024
hkob’s bloglotfp ヘルパー : 小林研 Rails Tips (38) - hkob’s blog
lotfp ヘルパー : 小林研 Rails Tips (38) - hkob’s blog
この記事は、Rails Tipsの38回目として、lotfpという便利なヘルパーについて紹介しています。lotfpは、link_to_ifのような条件によってリンクとテキストを切り替えるメソッドですが、パスだけで判定できるという特長があります。また、システムの権限周りの設定やlocalesを追加した上で、link_to…
- Jan 6, 2024
hkob’s blogurl_navi ヘルパー : 小林研 Rails Tips (37) - hkob’s blog
url_navi ヘルパー : 小林研 Rails Tips (37) - hkob’s blog
本記事はRails Tipsの37回目で、url_naviヘルパーの解説を行います。url_naviヘルパーは、ページ上部にパンくずリストを描画するためのヘルパーで、各ページの内容は:naviに相当するcontent_forの中に記載します。ヘルパーの使用は非常に簡単で、一度作り込むと毎回の記述部分が大幅に短縮されます…
- Jan 5, 2024
hkob’s blogdetail_from_path ヘルパー : 小林研 Rails Tips (36) - hkob’s blog
detail_from_path ヘルパー : 小林研 Rails Tips (36) - hkob’s blog
本記事は、Rails Tipsの36回目で、detail_from_path ヘルパーの紹介です。detail_from_path は、detail_from_cap と同様に、keyから詳細を取得します。ただし、ここでのkeyはtitleではなく、detailです。また、テストは一括で紹介され、具体的な実装も提供され…
- Jan 4, 2024
hkob’s bloglink_title_from_path ヘルパー : 小林研 Rails Tips (35) - hkob’s blog
link_title_from_path ヘルパー : 小林研 Rails Tips (35) - hkob’s blog
Rails Tips の35回目では、リンク用のタイトルを取得するメソッド、link_title_from_pathを紹介します。このメソッドは、title_from_pathと同様の仕組みで、localesが指定されていない場合は、titleを流用します。さらに、link_title_with_pathというヘルパー…
- Jan 3, 2024
hkob’s blogtitle_from_path ヘルパー : 小林研 Rails Tips (34) - hkob’s blog
title_from_path ヘルパー : 小林研 Rails Tips (34) - hkob’s blog
本記事はRails Tipsシリーズの34回目で、pathとmethodからタイトルを取得するヘルパーメソッドtitle_from_pathの作り方を解説しています。まず、コントローラ名やアクション名を含むハッシュからタイトルを取得するヘルパーメソッドtitle_from_capを作り、次にtitle_from_pat…
- Jan 2, 2024
hkob’s blogページタイトルの取り扱い : 小林研 Rails Tips (33) - hkob’s blog
ページタイトルの取り扱い : 小林研 Rails Tips (33) - hkob’s blog
この記事では、Rails Tipsの33回目として、ページタイトルの取り扱いについて説明しました。それまで手動で書き換えていたページタイトルをシステム化し、全ページで統一する方法を提示しています。具体的には、application.html.hamlの修正、各ページの先頭部分へのcontent_forの追加、local…
- Jan 1, 2024
hkob’s blogcontroller_and_action ヘルパー : 小林研 Rails Tips (32) - hkob’s blog
controller_and_action ヘルパー : 小林研 Rails Tips (32) - hkob’s blog
Rails Tipsの32回目では、controller_and_action ヘルパーを紹介します。このヘルパーは、pathとmethodからコントローラとアクションの名前を取得します。また、付加情報が必要な場合には、controller_action_and_params ヘルパーも使用されます。これらのヘルパーは…
- Dec 31, 2023
hkob’s bloglabels ヘルパー : 小林研 Rails Tips (31) - hkob’s blog
labels ヘルパー : 小林研 Rails Tips (31) - hkob’s blog
Rails Tipsの31回目では、昨日介紹した「t_ars」ヘルパーメソッドの応用として「labels」ヘルパーを紹介します。「labels」はモデルの属性名を一覧で取得するのに有用で、特に表のヘッダー作成などに活用できます。このヘルパーは「t_ars」を内部で呼び出し、また制御列を追加する機能も備えています。これに…
- Dec 30, 2023
hkob’s blogt_ars ヘルパー : 小林研 Rails Tips (30) - hkob’s blog
t_ars ヘルパー : 小林研 Rails Tips (30) - hkob’s blog
Rails Tipsの30回目で、ヘルパーメソッドt_arsを紹介します。t_arsはモデル名やモデルの属性名を取得します。引数により返却されるものが異なります。それぞれの名前は config/locales/models/ja.yml に保存してあります。このメソッドにより、ビューなどに日本語を直接書かなくてもよくな…
- Dec 29, 2023
hkob’s blogオブジェクトが1減るか? shared_example : 小林研 Rails Tips (29) - hkob’s blog
オブジェクトが1減るか? shared_example : 小林研 Rails Tips (29) - hkob’s blog
この記事では、Rails Tipsの29回目として、destroyのrequest_specについて説明しています。テストの雛形が提示され、その中でオブジェクトが一つ減るかどうかを確認する「オブジェクトが1減るか?」というshared_exampleが呼び出されます。また、権限のあるオブジェクトと権限のないオブジェクト…
- Dec 28, 2023
hkob’s blogオブジェクト属性が変化しない? shared_example : 小林研 Rails Tips (28) - hkob’s blog
オブジェクト属性が変化しない? shared_example : 小林研 Rails Tips (28) - hkob’s blog
本稿では、Rails Tipsの28回目としてupdateのrequest_specについて説明します。具体的には「オブジェクト属性が変化しない?」のテストに焦点を当てています。属性名を渡すことでその属性値が変更されなかったことを確認する方法を示しています。また、updateが失敗した際のflashの設定とedit a…
- Dec 27, 2023
hkob’s blogオブジェクト属性が変化した? shared_example : 小林研 Rails Tips (27) - hkob’s blog
オブジェクト属性が変化した? shared_example : 小林研 Rails Tips (27) - hkob’s blog
この文書は、Rails Tipsの27回目の記事で、updateのrequest_specについて説明しています。主に、「オブジェクト属性が変化した?」というテストを通過するために、オブジェクトの属性を変更し保存する方法について説明しています。また、shared_exampleの使用方法についても詳述しています。次回の…
- Dec 26, 2023
hkob’s blogAlert メッセージ確認 shared_example : 小林研 Rails Tips (26) - hkob’s blog
Alert メッセージ確認 shared_example : 小林研 Rails Tips (26) - hkob’s blog
この記事は、Rails Tipsの26回目で、createのrequest_specの異常系について説明しています。主にイベント(Event)の作成でエラーが発生した場合のspecについて触れています。具体的には、コメントが空白である場合にsaveでエラーが発生し、レスポンスがUnprocessable Content…
- Dec 25, 2023
hkob’s blogNotice メッセージ確認 shared_example : 小林研 Rails Tips (25) - hkob’s blog
Notice メッセージ確認 shared_example : 小林研 Rails Tips (25) - hkob’s blog
この記事は、Rails Tipsの25回目で、"create"の"request_spec"の正常系の最終部分を見ています。具体的には「Notice メッセージ確認」に焦点を当て、リダイレクト時に「クラスを登録しました」というメッセージがNoticeとして表示されることを確認します。記事は、この確認を行うためのshar…
- Dec 24, 2023
hkob’s blogリダイレクト確認 shared_example : 小林研 Rails Tips (24) - hkob’s blog
リダイレクト確認 shared_example : 小林研 Rails Tips (24) - hkob’s blog
この文書は、Rails Tipsの24回目で、createのrequest_specについて説明しています。特に、オブジェクトが作成された後のリダイレクトの挙動を確認するテストコードの作成について詳しく述べています。リダイレクト先はreturn_pathで設定し、テストは期待されるリダイレクト先に正しくリダイレクトされ…
- Dec 23, 2023
hkob’s blogオブジェクトが1増えるか? shared_example : 小林研 Rails Tips (23) - hkob’s blog
オブジェクトが1増えるか? shared_example : 小林研 Rails Tips (23) - hkob’s blog
本記事は、Rails Tipsの23回目として、createのrequest_specを紹介しています。特に「オブジェクトが1増えるか?」というテストに焦点を当て、そのテストがオブジェクトが一つ増えることを確認する方法を解説しています。また、そのための実装方法についても説明しています。(要約 by Notion AI)
- Dec 22, 2023
hkob’s blogrootリダイレクト確認 shared_example : 小林研 Rails Tips (22) - hkob’s blog
rootリダイレクト確認 shared_example : 小林研 Rails Tips (22) - hkob’s blog
この記事では、Rails Tipsの22回目として、request_specに使うshared_exampleを紹介しています。特に、rootリダイレクトの確認について詳しく説明しています。これは、自分のものではないページを表示しようとしたら、トップページに戻るようにする機能です。また、権限管理を自作したシステムについ…
- Dec 21, 2023
hkob’s blog描画結果に文字列が含まれている?・いない? shared_example : 小林研 Rails Tips (21) - hkob’s blog
描画結果に文字列が含まれている?・いない? shared_example : 小林研 Rails Tips (21) - hkob’s blog
本記事では、Rails Tipsの21回目として、request_specに使うshared_exampleの紹介を行います。ここでは、特に描画結果に文字列が含まれているかどうかをテストするshared_exampleを紹介します。テンプレートに該当の文字列が表示されればテストは成功します。次回は、not owned …
- Dec 20, 2023
hkob’s blogレスポンスコード確認 shared_example : 小林研 Rails Tips (20) - hkob’s blog
レスポンスコード確認 shared_example : 小林研 Rails Tips (20) - hkob’s blog
この記事では、Rails Tipsの20回目として、request_specに使うshared_exampleの紹介が行われています。記事では、レスポンスコードの確認方法について詳しく説明されています。この確認方法は、リクエストのレスポンスコードが指定された数値であることを検証するもので、この記事では、成功を示す200…
- Dec 19, 2023
hkob’s blogobjects_from_params 他2件: 小林研 Rails Tips (19) - hkob’s blog
objects_from_params 他2件: 小林研 Rails Tips (19) - hkob’s blog
この記事では、Rails Tipsの19回目として、コントローラでモデルを取得する際の記述を減らすためのヘルパーメソッドについて解説しています。パラメータの渡し方により、object_from_params_id, objects_from_params, object_from_params_another_id の…
- Dec 18, 2023
hkob’s blogconfirm_destroy_message: 小林研 Rails Tips (18) - hkob’s blog
confirm_destroy_message: 小林研 Rails Tips (18) - hkob’s blog
この記事では、Rails Tipsの18回目として、コントローラの日本語記述を減らすためのヘルパメソッドについて解説しています。特に、削除の際の確認メッセージの作成にフォーカスしており、confirm_destroyメソッドを用いて削除リンクの設定が簡単にできることを紹介しています。また、Rails 7 では Turb…
- Dec 17, 2023
hkob’s blognotice_message, alert_message: 小林研 Rails Tips (17) - hkob’s blog
notice_message, alert_message: 小林研 Rails Tips (17) - hkob’s blog
本稿ではRails Tipsの17回目として、notice_messageヘルパーメソッドとalert_messageヘルパーメソッドについて説明しています。これらのヘルパーメソッドは、create、update、destroyなどのアクション時に表示する定型のnotice messageやalert messageを…
- Dec 16, 2023
hkob’s blog配列メソッド呼び出し shared_example: 小林研 Rails Tips (16) - hkob’s blog
配列メソッド呼び出し shared_example: 小林研 Rails Tips (16) - hkob’s blog
この記事では、Rails Tipsの16回目として、モデルのテストを簡単に書くためのShared exampleについて解説しています。具体的には、「配列メソッド呼び出し」を主題に、配列のすべての要素に対して同じメソッドを呼び出し、その返り値を配列で比較するテストについて説明しています。また、年度 (year) モデル…
- Dec 15, 2023
hkob’s blog同じ?・一致しない? shared_example: 小林研 Rails Tips (15) - hkob’s blog
同じ?・一致しない? shared_example: 小林研 Rails Tips (15) - hkob’s blog
この記事は、Rails Tipsの15回目で、「同じ?」「一致しない?」というテストメソッドについて解説しています。これらは一意のオブジェクトを取り出すメソッドのテストに使用されます。具体的には、曜日クラスでwdayの数値から特定の曜日を取り出すメソッドweek_from_wdayをテストしています。また、これらのテス…
- Dec 14, 2023
hkob’s blog配列内に存在? shared_example: 小林研 Rails Tips (14) - hkob’s blog
配列内に存在? shared_example: 小林研 Rails Tips (14) - hkob’s blog
Rails Tipsの14回目では、modelのテストを簡単に書くためのshared_exampleの紹介を続けています。特に、配列内に存在するか、存在しないかを確認するためのshared_exampleを使用して、where条件の境界値チェックを行っています。これにより、テストがより簡潔になり、コードの理解が容易にな…
- Dec 13, 2023
hkob’s blogオブジェクト数が…? shared_example: 小林研 Rails Tips (13) - hkob’s blog
オブジェクト数が…? shared_example: 小林研 Rails Tips (13) - hkob’s blog
本記事では、Ruby on Railsのテストの効率化について解説しています。特に、get_or_create 系のメソッドのテストにフォーカスを当て、オブジェクト数が変化するかどうかを確認する shared_example の使用方法を説明しています。その結果、テストの記述量を減らし、正確なテストを簡単に実行できるこ…
- Dec 12, 2023
hkob’s blog単一メソッド呼び出し shared_example: 小林研 Rails Tips (12) - hkob’s blog
単一メソッド呼び出し shared_example: 小林研 Rails Tips (12) - hkob’s blog
この記事では、Ruby on Railsのテストを効率化するための「単一メソッド呼び出し」について解説しています。単一のオブジェクトに対してメソッドを呼び出し、その結果を確認するshared_exampleを使用し、テストの記述量を減らすことができると述べています。ただし、大量に実行するとどのテストで失敗したのかわから…
- Dec 11, 2023
hkob’s blog降順確認 shared_example: 小林研 Rails Tips (11) - hkob’s blog
降順確認 shared_example: 小林研 Rails Tips (11) - hkob’s blog
この記事ではRuby on Railsを利用したモデルテストのためのshared_exampleの一部、「降順確認」について解説しています。データの並び替えのテスト方法を詳しく説明し、特に降順の並び替えに重点を置いています。具体的なコード例と共に、降順の設定方法と注意点についても触れています。(要約 by Notion…
- Dec 10, 2023
hkob’s blog昇順確認 shared_example: 小林研 Rails Tips (10) - hkob’s blog
昇順確認 shared_example: 小林研 Rails Tips (10) - hkob’s blog
この記事は、Ruby on Railsを使用したモデルテストのためのshared_exampleの解説で、特に昇順確認(データの並び替えテスト)に焦点を当てています。sort_order属性やその他の属性(例えば、文字列、日付型)を用いた並び替えのテスト方法を詳細に説明しています。また、null値が存在する場合のテスト…
- Dec 9, 2023
hkob’s blog親削除時にnullを設定 shared_example: 小林研 Rails Tips (9) - hkob’s blog
親削除時にnullを設定 shared_example: 小林研 Rails Tips (9) - hkob’s blog
Rails Tipsの9回目の記事では、modelのテストを簡単に書くためのshared_exampleの紹介が続いています。この記事では、「親削除時にnullを設定」について説明しています。親が削除された場合に関連が消えることを確認するテストであり、具体的な例として受検生が学生や入学情報と関連している場合を挙げていま…
- Dec 8, 2023
hkob’s blog親は削除不可 shared_example: 小林研 Rails Tips (8) - hkob’s blog
親は削除不可 shared_example: 小林研 Rails Tips (8) - hkob’s blog
この文書はRails Tipsの8回目で、親の削除に関するテストについて説明しています。親が削除不可である条件は、削除できないモデルであるか、リレーションの依存関係で削除させないかのどちらかです。具体的な実装例も示されています。 (要約 by Notion AI)
- Dec 7, 2023
hkob’s blog親削除時に自分も削除 shared_example: 小林研 Rails Tips (7) - hkob’s blog
親削除時に自分も削除 shared_example: 小林研 Rails Tips (7) - hkob’s blog
Rails Tipsの7回目では、モデルテストのためのshared_exampleの解説が続き、親が削除された時に子供が削除されることを確認するテストについて説明しています。親削除時に自分も削除する設定はゴミデータを残さないために重要ですが、間違えて親が削除された時の被害は大きいので、この設定をするかどうかは慎重に考え…
- Dec 6, 2023
hkob’s blog関連確認 shared_example: 小林研 Rails Tips (6) - hkob’s blog
関連確認 shared_example: 小林研 Rails Tips (6) - hkob’s blog
Rails Tipsの6回目の記事では、modelのテストを簡単に書くためのshared_exampleの紹介が行われています。関連確認の部分では、belongs_toやhas_oneの関係について説明されており、それぞれの関連をテストするためのshared_exampleが提供されています。また、削除可能制約や削除不…
- Dec 5, 2023
hkob’s blog削除可能制約、削除不可制約 shared_example: 小林研 Rails Tips (5) - hkob’s blog
削除可能制約、削除不可制約 shared_example: 小林研 Rails Tips (5) - hkob’s blog
この文書は、Rails Tipsの5回目で、削除可能制約と削除不可制約についてのブログ記事です。削除可能制約はデータの削除が可能かどうかをチェックし、削除不可制約は削除が不可能な条件をテストします。また、属性の一意制約をチェックするためのshared_exampleも紹介されています。これらの制約はモデルのテストにおい…
- Dec 4, 2023
hkob’s blog複合一意制約 shared_example: 小林研 Rails Tips (4) - hkob’s blog
複合一意制約 shared_example: 小林研 Rails Tips (4) - hkob’s blog
Rails Tips の 4 回目では、model のテストを簡単に書くための shared_example の紹介が続いています。この記事では、複合一意制約について説明されており、一意制約の shared example の実装方法も示されています。また、実装によって属性が一意になることを検証することができます。(要…
- Dec 3, 2023
hkob’s blog一意制約 shared_example: 小林研 Rails Tips (3) - hkob’s blog
一意制約 shared_example: 小林研 Rails Tips (3) - hkob’s blog
Rails Tips の 3 回目では、model のテストを簡単に書くための shared_example の紹介があります。一意制約の shared_example では、属性の値が一意であることをテストします。具体的な実装方法も示されています。(by Notion AI)
- Dec 2, 2023
hkob’s blog存在制約 shared_example: 小林研 Rails Tips (2) - hkob’s blog
存在制約 shared_example: 小林研 Rails Tips (2) - hkob’s blog
このドキュメントは、Railsのモデルのテストを簡単に書くためのshared_exampleの紹介です。存在制約についてのshared_exampleが紹介されており、属性がnullにならないことを検証するためのテストを追加する方法が示されています。(by Notion AI)
- Dec 1, 2023
hkob’s blogTurbo Frame ヘルパメソッド: 小林研 Rails Tips (1) - hkob’s blog
Turbo Frame ヘルパメソッド: 小林研 Rails Tips (1) - hkob’s blog
Turbo FrameはRails 7で導入された技術で、フロントエンドの記述をせずにサーバサイドの記述だけでSPAのような画面書き換えを行うことができる。Turbo Frameを使うと、turbo_frame_tagで囲まれた部分のみを書き換えることができる。また、tfとdtfというヘルパメソッドを作成することで、簡…