2024-02-01から1ヶ月間の記事一覧
はじめに NotionRubyMapping 解説の第6回目です。これまで解説してきた中で RichTextArray というものが頻繁に出現していました。これは複数の RichText Object を要素にもつクラスでした。今回は、RichText Object のうちの一つである Text Object を解説し…
NotionRubyMapping 解説の第5回では、段落ブロックの取得とそれに関連するメソッドについて説明されています。主に、ブロックの取得、色の変更、子ブロックの取得などの機能が紹介されています。(要約 by Notion AI)
この記事はNotionRubyMappingの第4回目で、データベースを取得する方法と取得したデータベースに対するメソッドについて解説しています。具体的なコード例を引用しながら、各メソッドの使用法と結果を説明しています。(要約 by Notion AI)
NotionRubyMapping解説の第3回では、ページへのアクセスとそのページオブジェクトへのメソッドの使用を説明しています。ページタイトルや親のIDの取得、アイコンの設定などが含まれます。(要約 by Notion AI)
第2回目の NotionRubyMapping 解説では、インテグレーションキーの作成と設定用スクリプトの作り方を解説しました。これにより、Notion の API を Ruby で操作する準備が整いました。(要約 by Notion AI)
これはNotionRubyMappingの初回解説です。NotionRubyMappingはNotion APIをRubyから使いやすくするライブラリで、今回はそのインストール方法について説明しました。(要約 by Notion AI)
Rails の Tips を毎日書いてきましたが、だいたい研究室で使いそうなものを執筆しきったので、今後はネタがある時に不定期に連載します。 明日の朝からは別の連載を始めます。
RailsTips 第85回では、コメントの追加・編集・削除の部分をTurboFrame化し、ページ遷移なしで更新できるようにする方法を紹介しています。また、FlashメッセージをTurboFrameで扱うための工夫についても述べています。TurboFrameは一箇所しか更新できないた…
RailsTipsの84回目では、ユーザー関連のいくつかの不具合を修正しました。ログインしていないときに新しい記事を作成できないようにし、ログインリンクを追加しました。また、ユーザーの名前が空であった問題も解決しました。コメントの追加もログインしてい…
Rails Tips の 83 回目では、ユーザーをコメントに追加する方法を学びました。モデルにユーザーを追加した後、request spec を修正し、コントローラが正しく動作するように変更します。ビューも同様に修正し、特に articles/comments/_form.html.haml と art…
RailsTipsの82回目は、コメントにもユーザーを追加する方法を説明しています。記事と同様、コメントにもuser_idを追加しますが、コメントのuser_idにはnullが許可されている点が異なります。これはユーザーが削除された時に、ユーザーなしのコメントを残すこ…
Rails Tipsの81回目では、所有しないオブジェクトに対する編集や削除のリンクを発生させない方法を紹介しました。記事の執筆者を列に追加し、editとdestroyのリンクの前にowned_by?で権限を確認することがポイントです。また、ユーザ関係の処理を記事に適用…
RailsTips 80回目では、所有権を確認するテストおよび実装を行いました。所有しないオブジェクトに対するeditの対応が済み、updateやdestroyも対応が完了しています。テストで対応が済んでいることを確認しました。明日はこれに合わせてindexなどの描画を修…
Rails Tipsの79回目では、所有しないオブジェクトに対する編集の対応を行いました。所有しないオブジェクトに対するアクセスを防ぐため、記事の所有者を確認するメソッドを追加しました。これにより、所有権がない場合にはトップページにリダイレクトします…
Rails Tipsの78回目では、記事が特定のユーザーの所有物かどうかを確認するメソッドowned_by?と、記事を書いたユーザーの名前を取得するメソッドuser_nameの実装とそのテストについて解説しています。owned_by?メソッドはユーザーIDの比較、user_nameメソッ…
Rails Tips の 77 回目では、ユーザがログインした状態でのテストを行います。ログイン状態では Devise::Test::IntegrationHelpers を spec/rails_helper.rb に追加し、ログインするためのメソッドを作成します。記事の閲覧はログインしていなくても可能です…
RailsTipsの76回目では、Railsアプリケーションにユーザー認証を追加する方法を説明しています。Deviseを用いてローカル認証の作成を行い、その結果としてユーザー登録が可能になりました。続いて、記事にユーザーID属性を追加し、ログインしたユーザーだけ…
RailsTipsの75回目では、OAuth2の認証の挑戦が失敗したため、一度ローカルの認証に焦点を当てています。git revertを使用して前日の作業を取り消し、deviseでローカルログインを実装します。また、i18nバージョンも追加しています。deviseのインストール後、…
Rails Tips の 74 回目では、Google の OAuth 認証の導入について解説しています。まず、Google Cloud でプロジェクトを作成し、OAuth 同意画面から OAuth 2.0 クライアント ID を作成します。その情報を Rails の credentials に登録後、認証関連の gem を…
Rails Tipsの73回目では、Visible moduleの導入と実装が行われました。記事とコメントの両方でテストされたarchived?メソッドは、statusがarchivedであるときにtrueを返します。このメソッドはVisible moduleにMix-inされ、テストも通過しました。また、requ…
RailsTipsの72回目では、status属性に値限定制約を設定しました。この属性はpublic, private, archivedのみ設定可能で、これをテストするための値限定制約というshared exampleを作成しました。また、ArticleとCommentのmodelにそれぞれ存在制約と値限定制約…
RailsTipsの71回目では、「concernを使う」について学びます。まず、記事とコメントの両方にステータス属性を追加するためのマイグレーションファイルを作成します。ステータスにはpublic、private、archivedしか入れることができませんが、そのテストは次回…
このRailsTipsの70回目では、コメント削除機能のテストと実装を記述します。まずはコメントを表示している部分テンプレートに削除リンクを追加し、その後に新規フォームが表示されないようにします。次にテストを記述し、最後に削除処理を記述します。これで…
RailsTipsの69回目では、コメントの編集機能のテストと実装について記述されています。記事では、部分テンプレートの変更、新規コメントの設定、新規用フォームと更新用フォームの表示制御、テストの記述、実装の詳細について説明されています。また、次回は…
RailsTipsの68回目では、コメントの追加機能のテストと実装を行いました。記事では、テストケースの作成とその結果に基づく実装を詳しく説明しています。具体的には、submitボタンを押したときに動作するcreateアクションのテストを行い、その結果を基に art…
RailsTips 67では、コメントのエラーに対する対応を改善するための方法を説明しています。Railsガイドのコードを改良し、formの部分を部分テンプレートにしました。また、エラーが発生したオブジェクトが捨てられないように、新規オブジェクトを作る代わりに…
RailsTips 66回目では、articles/comments_controller.rbを追加する方法が説明されています。この記事では、ネストしたコントローラの作成方法と、生成されたRequest specを書き換える手順を詳しく説明しています。また、記事の最後では、今後のコメントの追…
RailsTipsの65回目では、Comment モデルに対するルーティング設定を行いました。Rails ガイドに従い、コメントを追加するコントローラのためのルーティングを追加しました。ただし、ガイドではフラットなコントローラを使っていますが、ルーティングだけでな…
Rails Tips 第64回目では、Comment モデルのテストについて記載します。まず属性に関するテストを実施し、それぞれの属性に対して存在制約を追加します。また、関連性の確認と親モデルの削除時に子モデルも削除されることを確認するテストを記述します。最後…
第63回の RailsTips では、第二のモデルである Comment モデルの追加について説明されています。新たに作成された Comment モデルは、Article モデルへの参照を保持します。また、commenter と body には null: false を追加しています。さらに、手動で記述…