Credo che ciò che si desidera avere è avere una vista che conterrà il tuo blocco content_for
. Quindi, un esempio potrebbe essere se avete la seguente:
index.html.erb
<% content_for :head do %>
<%= stylesheet_link_tag 'users' %>
#Above this will load the users stylesheet
<% end %>
<h2>Example</h2>
<ul>
<% @users.each do |users| %>
<li><%= user.name %></li>
<% end %>
</ul>
Poi all'uscita ciò che all'interno del foglio di stile users
possiamo cedere e passare il simbolo del nome del content_for
.
application.html.erb
<!-DOCTYPE html>
<html>
<head>
<%= yield :head%>
<title>This is my title</title
</head>
<body>
<p>This is a test</p>
<%= yield %>
</html>
Quindi, per rivedere quello che accade qui è che, nel mio esempio lo dico ho un users
foglio di stile che vorrei caricare nel <head></head>
della mia applicazione .html.erb. Per fare questo ho impostato il content_for
che è un helper di Rails e dargli l'identificatore sysmbol che è head
che viene poi chiamato nel application.html.erb
dove faccio yeild :head
. Quindi quello che sto cercando di fare è quando il mio index.html.erb
per quella pagina viene reso il application.html.erb
caricherà il mio foglio di stile users
. Spero che questo chiarisca le cose per te.
Aggiornamento spiegazione
Per aggiungere a questo un'altra cosa lo scopo della combinazione di utilizzare content_for
con yield
è quello di consentire di iniettare i dati nel layout applicazione dal QUALSIASI vista. Quindi, come un altro esempio. Si potrebbe avere il seguente:
<% content_for :title do %> My Title<% end %>
Qui quando il controllore rende il modello di vista e li combina con il layout dell'applicazione, il testo My title
sarà sostituito. Lo yield(:head)
semplifica l'aggiunta di più elementi alla pagina specifica, se necessario. Dai un'occhiata al seguente esempio:
app/views/layouts/application.html.erb
<% if content_for?(:navbar) %>
<%= yield(:navbar) %>
<% else %>
<%# default navbar %>
<section class="navbar"></section>
<% end %>
app/views/bla/index.html.erb
<% content_for(:navbar) do %>
<section class="navbar"></section>
<% end %>
E un ulteriore nota non sicuro di come il vostro sviluppo dell'applicazione o che cosa quadro di progettazione utilizzando il vostro, ma si potrebbe anche dai un'occhiata a Rails-Bootstrap-Navbar. Potrebbe anche essere un'alternativa.
Grazie a @hatStephensWork, lo proverò. – akkdio
no worries @akkdio, ho anche fatto una richiesta pull al tuo repository GitHub. Qualsiasi domanda basta chiedere. Sono un principiante, ma penso di capire cosa sta succedendo con questo! – HatStephensWork