سؤال

أرغب في إنشاء واجهة خلفية إدارية سريعة وقذرة لتطبيق Ruby on Rails الذي تم إرفاقي به في اللحظة الأخيرة.لقد ألقيت نظرة على activescaffold والمبسطة وأعتقد أنهما جذابان للغاية ويجب أن يكونا سهلين للتشغيل، لكنني لا أفهم تمامًا كيفية إعداد أي منهما كصفحة إدارة خلفية.يبدو أنها مصممة للعمل مثل مولدات/سقالات Ruby on Rails القياسية لإنشاء واجهات أمامية مرئية مع مراسلات اسم جدول عرض النموذج والتحكم.

كيف يمكنك إنشاء واجهة admin_players عندما تكون المشغلات قيد الاستخدام بالفعل وتريد تجنب التأثير قدر الإمكان على أي من الملفات المرتبطة بها؟

لا يمكن للمسؤول عرض المصدر الأصلي وتحريره وفهرسته.

هل كانت مفيدة؟

المحلول

أعتقد أن مساحات الأسماء هي الحل للمشكلة التي تواجهها هنا:

map.namespace :admin do |admin|
    admin.resources :customers
end

والتي سوف تخلق الطرق admin_customers, new_admin_customers, ، إلخ.

ثم داخل app/controller الدليل الذي يمكنك الحصول عليه admin الدليل.داخل دليل المسؤول الخاص بك، قم بإنشاء وحدة تحكم المسؤول:

./script/generate rspec_controller admin/admin

class Admin::AdminController < ApplicationController

  layout "admin"
  before_filter :login_required
end

ثم قم بإنشاء وحدة تحكم عملاء المشرف:

./script/generate rspec_controller admin/customers

واجعل هذا يرث من وحدة التحكم في التطبيقات الخاصة بك:

class Admin::CustomersController < Admin::AdminController

سيبحث هذا عن وجهات النظر في app/views/admin/customersوسوف نتوقع تخطيط في app/views/layouts/admin.html.erb.

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

نصائح أخرى

تحقق من active_admin في https://github.com/gregbell/active_admin.

لقد استخدمت تبسيطها على نطاق واسع جدا.

لكي يعمل Streamline، عليك إنشاء وحدات التحكم الخاصة بك - حتى تتمكن فعليًا من تشغيله بشكل منفصل تمامًا عن بقية التطبيق الخاص بك، ويمكنك حتى تشغيله في مجلد "admin" منفصل ومساحة اسم يمكن تأمينها باستخدام .

فيما يلي وحدة تحكم العملاء من تطبيق حديث:

class CustomersController < ApplicationController
  layout 'streamlined'
  acts_as_streamlined       

  Streamlined.ui_for(Customer) do
    exporters :csv   
    new_submit_button :ajax => false 
    default_order_options :order => "created_at desc"   
    list_columns :name, :email, :mobile, :comments, :action_required_yes_no  
  end
end
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top