الحصول على "طريقة غير محددة` تضمين؟ "" للطلب.user_agent
-
19-09-2019 - |
سؤال
لقد حصلت على هذا الخط من التعليمات البرمجية:
if request.user_agent.include?("iPhone") then
لكنني أحيانا الحصول على هذا الخطأ:
"undefined method `include?' for nil:NilClass"
عند التحقق من السجلات على الخطأ، لا يوجد "HTTP_USER_AGENT
"للمستخدم الذي يحصل الخطأ.
فكيف يمكنني إصلاح هذا الخط حتى لا يتم إلقاء خطأ إذا لم يكن هناك HTTP_USER_AGENT
?
المحلول
للقضبان 2.3.xx يمكنك أيضا استخدام كائن # حاول
request.user_agent.try(:include?, 'iphone')
الشيك هنا لمزيد من المعلومات.
نصائح أخرى
التحقق من ذلك لنيل أو إنقاذ الاستثناء بنفسك.
NSD صحيح.
يمكنك أيضا استخدام try
كقص قصير:
request.user_agent.try(:include?, "iPhone")
try
لن يحدث خطأ عندما يكون جهاز الاستقبال الخاص به لا شيء، حتى تتمكن من سلسلة منها معا، مثل هذا:
foo.try(:bar).try(:baz)
لا تنتمي إلى StackOverflow