我是新來的rails。我目前在我的網絡應用程序中有3個頁面。我想知道什麼是「酷軌方式」,我可以輕鬆地在每個頁面上實現相同的橫幅(圖片/網站標誌/文本)和水平導航菜單,而無需複製和粘貼代碼或爲每個代碼創建單獨的CSS文件頁。這可能嗎?想堅持使用Ruby/Rails/CSS/HTML。在Rails的每個頁面上都想要相同的橫幅/導航菜單
另外,看起來如果我爲一個控制器的一個視圖創建一個標題爲banner的css元素,則另一個控制器的另一個視圖具有相同的樣式。這裏幕後有什麼事嗎?
謝謝。
我是新來的rails。我目前在我的網絡應用程序中有3個頁面。我想知道什麼是「酷軌方式」,我可以輕鬆地在每個頁面上實現相同的橫幅(圖片/網站標誌/文本)和水平導航菜單,而無需複製和粘貼代碼或爲每個代碼創建單獨的CSS文件頁。這可能嗎?想堅持使用Ruby/Rails/CSS/HTML。在Rails的每個頁面上都想要相同的橫幅/導航菜單
另外,看起來如果我爲一個控制器的一個視圖創建一個標題爲banner的css元素,則另一個控制器的另一個視圖具有相同的樣式。這裏幕後有什麼事嗎?
謝謝。
這通常通過application.html.erb完成。你把網站的標題放在該頁面中,然後是<%= yield%>語句,然後是頁腳。 yield語句插入來自正在處理的任何操作的內容。
例如:
application.html.erb
<html>
<head>
</head>
<body>
<h1>My cool web site header and menu!</h1>
<%=yield %>
<p>Web site footer</p>
index.html.erb
<h2>Index</h2>
<ul>
<% @stuff.each do |thing| %>
<li><%=thing.name%></li>
<% end %>
</ul>
index.html.erb的內容將被插入到該應用程序。在出現<%= yield%>的地方顯示html.erb。
按照本教程:http://ruby.railstutorial.org/ruby-on-rails-tutorial-book, 這樣做的方法是使用render
方法。從教程
示例代碼:
app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
<head>
<title><%= full_title(yield(:title)) %></title>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" =>
true %>
<%= javascript_include_tag "application", "data-turbolinks-track" =>
true %>
<%= csrf_meta_tags %>
<%= render 'layouts/shim' %>
</head>
<body>
<%= render 'layouts/header' %>
<div class="container">
<%= render 'layouts/flash' %>
<%= yield %>
<%= render 'layouts/footer' %>
</div>
</body>
</html>
根據教程,在導軌的方式收拾的邏輯單元在一個地方是使用稱爲分音設施。
例如,你可以收拾在app/views/layouts/_navbar.html.erb
話,就可以在佈局<%= render 'layouts/navbar' %>
更多關於parials呈現您的導航欄:http://ruby.railstutorial.org/chapters/filling-in-the-layout#sec-partials
Rails的默認連接所有CSS文件到一個主人。 http://guides.rubyonrails.org/asset_pipeline.html