---
title: "ruby on rails | تعلّمت اليوم | OOZOU"
description: "ملاحظات قصيرة وعملية حول ruby on rails من فريق OOZOU."
canonical: https://oozou.com/ar/til-topics/ruby-on-rails
locale: ar
---

# ruby on rails | تعلّمت اليوم

> ملاحظات قصيرة وعملية حول ruby on rails من فريق OOZOU.

- [استخدام سياسات Pundit لإدارة المعاملات المسموح بها افتراضيًا ولكل إجراء](https://oozou.com/ar/til/use-pundit-policies-to-manage-permitted-parameters-defaults-and-per-action-188) ([markdown](https://oozou.com/ar/til/use-pundit-policies-to-manage-permitted-parameters-defaults-and-per-action-188.md)) (2022-02-10): لإدارة المعاملات المسموح بها، يمكنكم إضافة permitted_attributes وpermitted_attributes_for_#{action} في السياسات، على سبيل المثال:
- [استخدام `requestSubmit` لإرسال النماذج مع Turbo](https://oozou.com/ar/til/use-requestsubmit-for-form-submits-with-turbo-155) ([markdown](https://oozou.com/ar/til/use-requestsubmit-for-form-submits-with-turbo-155.md)) (2022-01-31): يستمع Turbo إلى أحداث submit على النموذج. لذلك استخدموا دائمًا requestSubmit لإرسال النموذج عبر JS.
- [تجاهل الـ gems المجمّعة في Rubocop وESLint ضمن GitHub Actions](https://oozou.com/ar/til/ignore-bundled-gems-for-rubocop-and-eslint-in-github-actions-154) ([markdown](https://oozou.com/ar/til/ignore-bundled-gems-for-rubocop-and-eslint-in-github-actions-154.md)) (2022-01-19): غالبًا ما تثبّت مشاريع Rails الـ gems في مجلد vendor ضمن GitHub Actions، كي نتمكن من تخزينها مؤقتًا للتشغيلات المتتالية.
- [Rails 6 وRuby 3 وBootstrap 5 وHotwire](https://oozou.com/ar/til/rails-6-ruby-3-bootstrap-5-and-hotwire-115) ([markdown](https://oozou.com/ar/til/rails-6-ruby-3-bootstrap-5-and-hotwire-115.md)) (2021-04-18): هذا امتداد لمقالة مدونة Bootrails مع إضافة Hotwire إليها: أحدث الأدوات الرائعة (حتى وقت كتابة هذا TIL):
- [ترويسة Cache-Control في Rails](https://oozou.com/ar/til/rails-cache-control-77) ([markdown](https://oozou.com/ar/til/rails-cache-control-77.md)) (2020-10-27): لضبط ترويسات cache-control للأصول الثابتة واستخدام CDN على Heroku:
- [إصلاح الإدخال في rails console على Heroku](https://oozou.com/ar/til/fix-input-on-heroku-s-rails-console-73) ([markdown](https://oozou.com/ar/til/fix-input-on-heroku-s-rails-console-73.md)) (2020-10-14): إذا اضطررتم إلى لصق عدد كبير من الأسطر في rails console على Heroku (أو في أي مكان آخر)، فقد تواجهون مشكلة تداخل الأسطر بعضها في بعض.
- [معرّف فريد لعناصر DOM في Rails](https://oozou.com/ar/til/unique-id-for-dom-in-rails-75) ([markdown](https://oozou.com/ar/til/unique-id-for-dom-in-rails-75.md)) (2020-10-14): يوفّر Rails كثيرًا من الـ view helpers الرائعة، ومنها dom_id:
- [إضافة أنواع جديدة إلى واجهة attributes API في Rails 5](https://oozou.com/ar/til/add-new-types-to-rails-5-attributes-api-13) ([markdown](https://oozou.com/ar/til/add-new-types-to-rails-5-attributes-api-13.md)) (2020-10-13): تتيح لنا واجهة attributes API في Rails 5 بناء كائنات النماذج (form objects) بسهولة كبيرة.
- [إرفاق ملف بـ ActiveStorage من دون HTTP](https://oozou.com/ar/til/attaching-file-to-activestorage-without-http-19) ([markdown](https://oozou.com/ar/til/attaching-file-to-activestorage-without-http-19.md)) (2020-10-13): إذا أردتم إرفاق ملف أنشأتموه على القرص أو نزّلتموه من رابط أرسله المستخدم، يمكنكم فعل ذلك على النحو التالي.
- [إنشاء Hash من Enumerable (Rails 6.0)](https://oozou.com/ar/til/create-a-hash-from-an-enumerable-rails-6-0-6) ([markdown](https://oozou.com/ar/til/create-a-hash-from-an-enumerable-rails-6-0-6.md)) (2020-10-13): دالة جديدة تتيح لكم إنشاء Hash من Enumerable:
- [إنشاء ترحيلات قابلة للتكرار بأمان (Idempotent Migrations)](https://oozou.com/ar/til/create-idempotent-migrations-28) ([markdown](https://oozou.com/ar/til/create-idempotent-migrations-28.md)) (2020-10-13): عندما تكتبون ترحيلات تحذف بيانات أو هياكل، استخدموا if_exists: true عند حذف جدول، وتحققوا من وجود الجدول عند إضافة عمود أو حذفه…
- [كيف تكتشفون الكائنات المتضخمة (God Objects) في مشروعكم (Rails)](https://oozou.com/ar/til/how-to-find-god-objects-in-your-project-rails-40) ([markdown](https://oozou.com/ar/til/how-to-find-god-objects-in-your-project-rails-40.md)) (2020-10-13): من المجلد الجذر لمشروعكم، انتقلوا بالأمر cd إلى app/models (من سطر الأوامر طبعًا)، ثم شغّلوا wc -lw * | sort -u
- [نماذج HTML ترسل البيانات إلى action مختلف](https://oozou.com/ar/til/html-forms-that-submit-to-another-action-10) ([markdown](https://oozou.com/ar/til/html-forms-that-submit-to-another-action-10.md)) (2020-10-13): أعرف منذ زمن طويل أنه يمكن إرسال قيم عبر أزرار الإرسال، بحيث تعرفون أي زر استُخدم لإرسال النموذج، مثلًا.
- [إذا أردتم تجاوز ترتيب سبق تعيينه](https://oozou.com/ar/til/if-you-want-to-override-previously-set-order-25) ([markdown](https://oozou.com/ar/til/if-you-want-to-override-previously-set-order-25.md)) (2020-10-13): إذا أردتم تجاوز ترتيب سبق تعيينه (حتى لو كان عبر default_scope)، فاستخدموا reorder() بدلًا من ذلك.
- [تقييد عدد السجلات في ارتباطات has_many](https://oozou.com/ar/til/limited-has_many-associations-31) ([markdown](https://oozou.com/ar/til/limited-has_many-associations-31.md)) (2020-10-13): تقييد عدد السجلات في ارتباطات has_many
- [عرض أسماء النماذج في تطبيقكم](https://oozou.com/ar/til/list-your-model-names-58) ([markdown](https://oozou.com/ar/til/list-your-model-names-58.md)) (2020-10-13): ملاحظة: يقلّل RUBYOPT=-W0 المخرجات الزائدة عند تشغيل أوامر rails، لأنه يكتم التحذيرات.
- [دوال Postgres والاستعلامات غير القابلة للفهرسة (Non-sargable)](https://oozou.com/ar/til/postgres-functions-non-sargable-queries-48) ([markdown](https://oozou.com/ar/til/postgres-functions-non-sargable-queries-48.md)) (2020-10-13): قد يؤدي استخدام دوال postgres داخل عبارة where إلى جعل الاستعلام non-sargable، أي غير قادر على الاستفادة من الفهارس.
- [استخدام UPDATE مع Join في PostgreSQL](https://oozou.com/ar/til/postgresql-update-join-64) ([markdown](https://oozou.com/ar/til/postgresql-update-join-64.md)) (2020-10-13): يوضح هذا الاستعلام كيفية استخدام صيغة UPDATE مع join في PostgreSQL لتحديث البيانات في جدول بناءً على قيم في جدول آخر. على سبيل المثال:
- [استخدام scope مع or في Rails](https://oozou.com/ar/til/scope-or-scope-in-rails-11) ([markdown](https://oozou.com/ar/til/scope-or-scope-in-rails-11.md)) (2020-10-13): scope :human, -> { user.or(author) } scope :terminator, -> { admin.or(robot) } `
- [عرض TODO والملاحظات الأخرى في تطبيق Rails](https://oozou.com/ar/til/show-todo-and-other-notes-in-your-rails-app-7) ([markdown](https://oozou.com/ar/til/show-todo-and-other-notes-in-your-rails-app-7.md)) (2020-10-13): هل تعلمون أنه يمكنكم عرض جميع ملاحظات TODO وOPTIMIZE وFIXME في تطبيق Rails باستخدام rails notes؟
- [وسم سجلات Rails بمعلومات مفيدة](https://oozou.com/ar/til/tag-rails-logs-with-useful-information-32) ([markdown](https://oozou.com/ar/til/tag-rails-logs-with-useful-information-32.md)) (2020-10-13): تعرّفت للتو على السجلات الموسومة (tagged logging) في Rails. هل تعلمون أنه يمكنكم وسم السجل باستخدام
- [استخدام minItems وmaxItems في مخططات JSON للمجموعات](https://oozou.com/ar/til/use-minitems-maxitems-in-collection-json-schemas-1) ([markdown](https://oozou.com/ar/til/use-minitems-maxitems-in-collection-json-schemas-1.md)) (2020-10-13): لجعل مخططات JSON الخاصة بالمجموعات أكثر موثوقية، استخدموا minItems وmaxItems حتى تثقوا بواجهة API الخاصة بكم.

All notes: [تعلّمت اليوم](https://oozou.com/ar/til) ([markdown](https://oozou.com/ar/til.md)).

---

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

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