Hi,
ich hänge seit heute morgen an einem Fehler, der mich langsam in der Wahnsinn treibt. Und zwar habe ich ein Layout in app/view/layouts/application.html.erb:
|
HTML Code
|
1
2
3
4
5
6
7
8
9
10
11
12
|
[...]
<!-- Main menu (tabs) -->
<div id="tabs" class="noprint">
<h3 class="noscreen">Navigation</h3>
<ul class="box">
<%= render :partial => @navigations %>
</ul>
<hr class="noscreen" />
</div> <!-- /tabs -->
[...]
|
Dort rufe ich einen Partial für die globale Variable @navigations auf. Ab Rails 2.x wird ja dann automatisch nach eine dem Variablennamen im Singular mit Unterstrich gesucht, also in diesem Fall _navigation.html.erb.
Diese existiert bei mir ebenfalls im Verzeichnis app/views/layouts/:
|
HTML Code
|
1
|
<li><a href="#"><span class="tab-l"></span><span class="tab-r"><%= navigation.title %></span></a></li>
|
Wenn ich jetzt jedoch die Seite aufrufen möchte, zeigt er mir folgende Fehlermeldung an:
|
Source code
|
1
|
Missing partial navigations/navigation with {:handlers=>[:erb, :rjs, :rhtml, :rxml, :builder], [...]
|
Was mich jedoch wundert ist, dass ich genau diese Art von Partial in einem View(index.html.erb) einsetzen kann und er alles ohne zu murren ausführt.
Hier mal zum Vergleich die funktionierenden Dateien:
app/view/posts/index.html.erb:
|
RubyOnRails Quellcode
|
1
|
<%= render :partial => @posts %>
|
app/view/posts/_post.html.erb
|
HTML Code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<!-- Article -->
<div class="article">
<h2><span><a href="#"><%= post.title %></a></span></h2>
<p class="info noprint">
<span class="date"><%= post.created_at %></span><span class="noscreen">,</span>
<span class="cat"><a href="#">Category</a></span><span class="noscreen">,</span>
<span class="user"><a href="#">My name</a></span><span class="noscreen">,</span>
<span class="comments"><a href="#">Comments</a></span>
</p>
<p><%= post.content %></p>
<p class="btn-more box noprint"><strong><a href="#">Continue</a></strong></p>
</div> <!-- /article -->
|
Gibt es für layouts andere Regeln bei den Partials? Anders kann ich mir diesen Fehler leider nicht erklären.