جعل القضبان تبحث عن .ملفات الجوال في دليل فرعي?
-
20-12-2019 - |
سؤال
أنا باستخدام جوهرة فو المحمول للقيام ببعض الكشف عن وكيل المستخدم ، حتى أتمكن من خدمة إما .أتش تي أم أل أو .قوالب تمديد المحمول اعتمادا على العميل,
الآن ، هذا الجزء يعمل بشكل جيد حقا ، ولكن أنا لا أحب أن المجلدات عرض تصبح تشوش قليلا مع ضعف الملفات ، أي.
app/views/profiles/show.mobile.haml
app/views/profiles/show.html.haml
app/views/profiles/edit.mobile.haml
app/views/profiles/edit.html.haml
الخ ، الخ
ما أود الحصول عليه بدلا من ذلك هو:
app/views/profiles/html/show.html.haml
app/views/profiles/html/edit.html.haml
و
app/views/profiles/mobile/show.mobile.haml
app/views/profiles/mobile/edit.mobile.haml
ولها القضبان ننظر تلقائيا إلى المجلد الصحيح / الدليل للملفات اعتمادا على الطلب.هل هذا ممكن القيام به?
ربما هذا هو شيء من السهل حقا القيام به ، واسمحوا لي أن أعرف إذا كان هذا هو السلوك الذي يخرج من مربع..
يعطيكم الصّحة
المحلول
القضبان 4.1 لديه ميزة جديدة مدمجة تسمى أكتيونباك المتغيرات, ، الذي يكتشف وكيل المستخدم (مثل جوهرة فو المتنقلة).
في الأساس ، يمكنك إضافة هذا على سبيل المثال في أبليكاتيونكونترولر الخاص بك:
before_action :detect_device_format
private
def detect_device_format
case request.user_agent
when /iPad/i
request.variant = :tablet
when /iPhone/i
request.variant = :phone
when /Android/i && /mobile/i
request.variant = :phone
when /Android/i
request.variant = :tablet
when /Windows Phone/i
request.variant = :phone
end
end
لنفترض أن لديك ملف تعريف متحكم.الآن يمكنك القيام بذلك:
class ProfilesController < ApplicationController
def index
respond_to do |format|
format.html # /app/views/profiles/index.html.erb
format.html.phone # /app/views/profiles/index.html+phone.erb
format.html.tablet # /app/views/profiles/index.html+tablet.erb
end
end
end
العودة إلى سؤالك:إذا كنت تريد البحث عن ملفات في مجلد/دليل مختلف ، فيمكنك القيام بذلك:
format.html.phone { render 'mobile/index' } # /app/views/mobile/index.html+phone.erb
هناك أيضا تعليمي جيد مما يدل على كيفية استخدامها.