ربما تسرّعتُ في الكلام. ![]()
بعد تصحيح معاملات “truthy”/“falsy” إلى سلاسل “true”/“false”، ما زلتُ أرى إدخال عناصر إلى قائمة “Screened IPs” و"Screened Emails" عند حذف المستخدمين.
إليك سجلات Rails لاستدعاء API:
Started DELETE "/admin/users/9553.json" for 123.123.123.123 at 2021-06-10 00:01:21 +0000
Processing by Admin::UsersController#destroy as JSON
Parameters: {"delete_posts"=>"false", "block_email"=>"false", "blocked_urls"=>"false", "block_ip"=>"false", "id"=>"9553"}
Can't verify CSRF token authenticity.
Rendering text template
Rendered text template (Duration: 0.0ms | Allocations: 1)
Completed 418 in 8ms (Views: 1.4ms | ActiveRecord: 0.0ms | Allocations: 2301)
وهذا الطلب عند تنفيذه عبر واجهة الويب بدلاً من استدعاء API:
Started DELETE "/admin/users/49.json" for 123.123.123.123 at 2021-06-10 08:24:47 +0000
Processing by Admin::UsersController#destroy as JSON
Parameters: {"context"=>"/admin/users/49/XXX", "delete_posts"=>"true", "id"=>"49"}
Rendered text template (Duration: 0.0ms | Allocations: 1)
Completed 418 in 23ms (Views: 4.7ms | ActiveRecord: 0.0ms | Allocations: 1778)
إذن، بعد بعض الاختبارات، يبدو أن معاملات نقطة النهاية API /admin/users/{id}.json تُفسَّر دائمًا على أنها true عند وجودها، بغض النظر عما إذا كانت مُعيّنة فعليًا إلى ‘true’ أم ‘false’؟
عندما بدأتُ في تعيين المعاملات التي قيمتها ‘true’ فقط وتجاوز تلك التي قيمتها ‘false’، لم يعد يتم إضافة أي عناصر إلى قائمة “Screened IPs”/“Screened Emails”.
هل هذا هو السلوك المقصود؟ هذا لا يتوافق مع فهمي المستمد من التوثيق.