(FunctionClauseError) in DataToParams.transform_relationship/2` on scalar relationship linkage
関連するプルリクエストがすでにマージされています。
- #474 @agustin2606 による — マージ済み
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 68/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- elixir
調査の方向性
まず DataToParams.transform_relationship/2 を見つけ、ドキュメントに記載された EnsureSpec と Deserializer のパイプラインがリレーションシップの紐付けをどのように処理するかを読みます。報告にあるスカラー値で FunctionClauseError を再現し、その入力でリクエストがエラーを起こさなくなることを確認します。issue ではテストファイルが指定されていないため、関連する deserializer のテストを見つけ、報告されたケースをカバーするテストを追加します。
索引モデルが issue の本文から書いたものです。
説明
Hi there 👋
Found similar crash as reported in #294, different input shape. #299 closed the empty-map case via EnsureSpec, but scalar linkage still falls through to the same FunctionClauseError.
Setup is the documented pipeline:
plug JSONAPI.EnsureSpec
plug JSONAPI.Deserializer
Request (any POST/PATCH with a JSON:API body):
POST /posts
{"data": {"type": "posts", "attributes": {}, "relationships": {"comment": {"data": "oops"}}}}
Also crashes for 123, true, "".
Result — raised exception.
- 主要言語
- Elixir
- スター
- 511
- フォーク
- 77
- 平均マージ
- 18時間 35分
- マージ済み PR(30日)
- 2
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
taskforcesh/bullmq#5038 ·
メンテナーはふだん 1 日以内に返信
-
L: python L: ruby:bundler T: bug 🐞
難易度 2/5 1〜3時間 初心者へのやさしさ 69/100
dependabot/dependabot-core#16756 ·
メンテナーはふだん 1 日以内に返信
-
feat: signup pageオープンd: medium
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
難易度 2/5 1時間未満 初心者へのやさしさ 85/100