سؤال

أنا باستخدام جوهرة فو المحمول للقيام ببعض الكشف عن وكيل المستخدم ، حتى أتمكن من خدمة إما .أتش تي أم أل أو .قوالب تمديد المحمول اعتمادا على العميل,

الآن ، هذا الجزء يعمل بشكل جيد حقا ، ولكن أنا لا أحب أن المجلدات عرض تصبح تشوش قليلا مع ضعف الملفات ، أي.

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

هناك أيضا تعليمي جيد مما يدل على كيفية استخدامها.

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