كيفية تضمين المغلق أو جافا سكريبت في إرب التي هي خارج التخطيط؟
-
20-08-2019 - |
سؤال
وعذرا للسؤال noobish قليلا، وأنا أكتب أول التطبيق القضبان.
وأحصل على فكرة عرض تخطيط، ولكن إذا كنت تستخدم لهم، هل هناك أي طريقة لتشمل عرض شبيبة محددة أو ملف المغلق؟ على سبيل المثال، لقد layouts/products.html.erb
، وproducts/edit.html.erb
أريد products_edit.css
، ولكن لا أريد أن المغلق لجميع وجهات النظر المنتج، ما هو أفضل الممارسات لتحقيق ذلك؟
المحلول
إذا كان لديك ملف edit.css عام، أود أن أقترح على إذا كان في التصميم الخاص بك
<%= stylesheet_link_tag 'edit' if params[:action] == 'edit' %>
وإلا يمكنك استخدام content_for
مع yield
لإضافة علامات إضافية في الرأس.
وlayout.html.erb
<head>
...
<%= yield(:header) if @content_for_header %>
</head>
وproducts/edit.html.erb
<% content_for :header do -%>
<%= stylesheet_link_tag 'edit_product' %>
<% end -%>
نصائح أخرى
ويمكنك إضافة علامة أنماط داخل علامة رئيس التخطيط عن طريق القيام بشيء من هذا القبيل:
وتخطيطات / products.html.erb:
<head> ... <%= yield :css %> ... </head>
منتجات / edit.html.erb
<% content_for :css do stylesheet_link_tag 'products_edit' end %>
ولا يمكنك إذا العلامة </head>
الخاصة بك في التصميم الخاص بك.
وقد تحتاج تخطيط مختلف لهذا الإجراء وحدة تحكم. من هذا القبيل على تقديم:
render :action => "index", :layout => "some_other_layout
وأيضا يمكنك تحديد التخطيط الافتراضي مختلف عن وحدة تحكم كاملة مع هذا الخط في فئة تحكم:
layout "some_other_layout"
والتحقق من مستندات API، هناك بعض الأمور المعقدة يمكنك القيام به مع الشرطية على أن أسلوب التخطيط.