Ruby-on-rails: مساعدة في العرض: Layout => false
-
30-09-2019 - |
سؤال
أحاول الوصول إلى مورد تطبيق Rails من واجهة برمجة التطبيقات (يرسل طلبًا/XML الحصول على طلب) وأود ألا أضطر إلى تحليل ملف XML.
في وحدة تحكم الموارد الخاصة بي ، لدي ما يلي:
def get_resource
@my_resource = Resources.new
render :xml => @my_resource
end
الذي ينتج ملف XML كما هو متوقع. إذا استبدلته بـ:
render :layout => false
تقارير API عن خطأ "قالب مفقود". لقد جربت أيضًا ما يلي:
render :xml => @identity, :layout => false
لكن الصفحة تقدم على أي حال. ما هي الطريقة الصحيحة للقيام بهذا؟
المحلول
عند تقديم: XML ، فإنه لا يستخدم تخطيطًا لأنه لا يستخدم أي قالب أيضًا. من خلال تحديد: تخطيط => خطأ ، فأنت تخبر القضبان بالبحث عن قالب غير موجود.
الآن ، إذا كنت لا ترغب في تحليل ملف XML ، فستواجه بعض البدائل. أيضاً:
render :json => @my_resource
أو
render :text => "My resource name is: #{@my_resource.name}" # Whatever you want
كل هذا يتوقف على الطريقة التي تريد أن تبدو بها النتيجة ، وما يتوقعه واجهة برمجة التطبيقات الخاصة بك. لذا ، إذا لم تجد أيًا من هذا المفيد ، فأعط مثالاً على كيفية رغبة الاستجابة.
نصائح أخرى
def get_resource
@my_resource = Resources.new
respond_to do |wants|
wants.xml { render :xml => @my_resource }
wants.html { render :layout => false }
end
end
اقرأ هذه المقالة: http://tokumine.wordpress.com/2009/09/13/how-does-respond_to-work-in-the-rails-controllers/