طريقة أفضل للعرض المشروط معلومات في وجهات النظر؟
-
18-09-2019 - |
سؤال
أجد نفسي يكتب رمز مثل هذا في رأس HTML وأماكن أخرى:
<% if @canonical_url %>
<link rel="canonical" href="<%= @canonical_url %>"/>
<% end %>
ثم اضبط المتغير في وحدة التحكم إذا كان من المناسب.
هل هناك أي طريقة لكتابة ما يعادلها على سطر واحد، أو ربما طريقة مختلفة لتنظيم التعليمات البرمجية؟
المحلول 2
حسنا، لقد توصلت إلى هذا الحل. في القالب:
<%= show_if('<link rel="canonical" href="$1"/>', @canonical_url) %>
ثم طريقة المساعد:
#
# Return the template text if the variable has a value.
#
def show_if(template, variable)
if variable
template.gsub('$1', variable)
else
''
end
end
نصائح أخرى
آسف للإجابة المزدوجة، لذلك سوف تسمح لي فقط بنشر عنوان URL واحد.
بدلا من ذلك، قد يتم حل مشكلتك باستخدام content_for في وجهات نظركم حيث تريد أن يظهر هذا المحتوى في تخطيطك.
أحتاج إلى سياق أكثر قليلا لتحديد ما هو أنك تحاول القيام به. بالنظر إلى المعلومات التي تقدمها، أود أن أوصي بإلقاء نظرة على البرنامج المساعد Canonical-URL للقضبان.
def if_value(value, &block)
if value
concat(capture(value, &block))
end
end
<% if_value(@canonical_url) do |value| %>
<link rel="canonical" href="<%= value %>"/>
<% end %>
لا تنتمي إلى StackOverflow