2013-11-20 8 views
7

ich die Schritte in diesen neu zu erstellen Schienen Tutorial: http://www.youtube.com/watch?v=tUH1hewXnC0Vorlagendatei nicht Ergebnis von form_for Rendering in Rails 4

Wenn Sie 7.35 suchen, können Sie einen form_for Block sehen werden die Benutzer erstellt hat. Wenn ich diesen Code hinzufüge und die Seite in einem Browser anschaue, wird die Seite gerendert, aber es gibt kein HTML, in dem das Formular sein sollte - nicht einmal leere Tags. Ich habe bestätigt, dass dies kein Problem mit einer fehlenden Migration oder einem leeren Browser ist.

Ich habe das Problem nach unten vereinfacht, und jetzt meine show.html.erb Template-Datei ist einfach:

<% form_for @post do |f| %> 
    testing 
    <% debugger %> 
<% end %> 

<% for i in 0..5 %> 
    <%= i %> 
<% end %> 

(Der zweite Block nur, um sicherzustellen, ist die Wiedergabe funktioniert)

Das gerenderte HTML ist:

... bunch of header stuff here ... 
<body> 

0 
1 
2 
3 
4 
5 

</body> 
</html> 

"Testen" wird nicht als Teil des HTML gerendert.

Ich legte diese Debugger-Zeile, so dass ich den Debugger Gem mit Rails-Server - Debugger verwenden konnte. dass die Verwendung bringt mich zu diesem Punkt:

[196, 205] in /Users/Ben/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/actionpack-4.0.0/lib/action_view/helpers/capture_helper.rb 
    196   buf = ActionView::OutputBuffer.new 
    197   buf.force_encoding(output_buffer.encoding) if output_buffer 
    198   end 
    199   self.output_buffer, old_buffer = buf, output_buffer 
    200   yield 
=> 201   output_buffer 
    202  ensure 
    203   self.output_buffer = old_buffer 
    204  end 
    205 
(rdb:48) p output_buffer 
" testing\n" 

So wird die form_for ausgeführt zu werden, aber nicht den ganzen Weg bis zum Ausgang html irgendwie geliefert bekommen. (deshalb sorge ich nicht um Ihnen zu zeigen, dass ich @post richtig initialisiere.)

Ich kann keine ähnliche Probleme online finden, aber ich bin wahrscheinlich nur nicht auf der Suche nach den richtigen Dingen. Irgendwelche Ideen?

Antwort

16

Sie verpassen die = Zeichen: <%= form_for @post do |f| %>

+0

hat sich das irgendwann in Schienen geändert? Dieses Tutorial http://www.youtube.com/watch?v=zG_mvp8u4cI verwendet kein Gleichheitszeichen und scheint gut zu funktionieren. –

+1

@BenjaminWheeler Es wurde mit Rails 3 eingeführt. Quelle: http://asciicasts.com/episodes/208-erb-blocks-in-trails-3 – Andrei

4

es Figured so schnell, wie ich Frage fertig zu schreiben (scheint immer auf Stackoverflow passieren!)

Auf der form_for Linie sollte <% statt <% = sein.

Ich vermute, dass sich irgendwann in Schienen geändert?

+0

Wie ist das anders als @ Andrei Antwort? – paqogomez

+0

sieht aus wie er und ich gepostet Antworten zur gleichen Zeit –

+0

+ 1 ist rund herum :) – paqogomez

Verwandte Themen