كيفية تضمين المغلق أو جافا سكريبت في إرب التي هي خارج التخطيط؟

StackOverflow https://stackoverflow.com/questions/480288

  •  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، هناك بعض الأمور المعقدة يمكنك القيام به مع الشرطية على أن أسلوب التخطيط.

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