القضبان كثيرة مع العديد من العلاقة مع الطرق المتداخلة في بعض الأحيان

StackOverflow https://stackoverflow.com/questions/2514486

سؤال

بينما أتعلم المزيد عن القضبان ، وكسر تفكيري التصميمي من أيام ASP.NET ، كنت أفكر في سيناريو هذا الصباح ولكني لم أكن أعرف ما إذا كان من الممكن القيام بذلك.

لدى الممارسين العديد من العلاجات من خلال الخدمات - والعكس صحيح

في لوحة التحكم الخاصة بي ، لدي منطقة للممارسين لتحرير تفاصيلهم (أسماء ، معلومات الاتصال ، وما إلى ذلك) ويمكنهم أيضًا اختيار علاجاتهم عبر صناديق الشيكات.

أرغب في إزالة مربعات الاختيار من الممارسين. وجود شكل خاص به والذي يمكنني الاتصال به مثل هذا:

<%= link_to "Edit Treatments", edit_practitioner_treatments(@practitioner) %>

ومع ذلك ، من وجهة نظر المسؤول ، ما زلت بحاجة إلى أن أكون قادرًا على إدارة العلاجات بدون كائن ممارس في الأفق:

<%= link_to "Edit Treatments", edit_treatments(@treatment) %>

التي لديها أيضا حواجز المصادقة.

  • هل هناك حل أسهل لاستخراج العلاجات التي أغفلتها؟
  • هل من الممكن أن يكون لديك طرق متداخلة فقط في بعض الوقت؟
  • هل كان لدي الكثير من القهوة هذا الصباح ، وبالتالي فهي حاليًا في حالة من الجنون؟
هل كانت مفيدة؟

المحلول

بشكل عام ، عند النظر في وظائف المسؤول ، والتي غالباً ما تقدم واجهة مختلفة تمامًا للمستخدم بإذن من التحقق من الإذن أكثر على "هل يكسر هذا شيئًا" عن "إذا تم السماح لك" ، فمن المفيد إنشاء منطقة مسؤول مع وحدات تحكم منفصلة. علي سبيل المثال:

map.namespace :admin do |admin|
  # Admin::PracticionersController
  map.resources :practicioners

  # Admin::TreatmentsController
  map.resources :treatments
end

map.resources :practicioners do |practicioner|
  practicioner.resources :treatments
end

map.resources :treatments do |treatment|
  treatment.resources :practicioners
end

يمكن أن ترث جميع وحدات التحكم Admin ::* من شيء مثل Admin :: BaseController الذي يقوم بفحص مصادقة صارمة بما فيه الكفاية قبل السماح بأي إجراءات.

في معظم التطبيقات التي رأيتها ، يحتوي الواجهة الأمامية التي تواجه المستخدم على عنصر من التصميم أو النمط ، حيث يتم تخطيطها غالبًا من خلال العناصر الملاحية أو الإعلان أو محتوى تحريري آخر. إن إنشاء عرض مسؤول منفصل غير مرغوب فيه ، ويظهر مزيد من المعلومات لكل صفحة ، ويسمح للفرز أو البحث عن الأبعاد التي لا تتعرض للمستخدم أمرًا كبيرًا عند إدارة مجموعات البيانات المتوسطة الحجم.

على الرغم من أن الأمر قد يبدو وكأنه الكثير من العمل لجعل وحدات التحكم الإضافية هذه والنماذج المرتبطة بها ، إذا كنت حريصًا في التصميم الخاص بك ، يمكنك إعادة تدوير الكثير من الوظائف بين المجالين ، وخاصة الجزئية للصفحة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top