Ben*_*ler 7 ruby-on-rails form-for ruby-on-rails-4
我正在重新创建此rails教程中的步骤:http: //www.youtube.com/watch?v = tUH1hewXnC0
如果您寻求7:35,您将看到用户创建的form_for块.当我添加该代码并在浏览器中查看页面时,该页面渲染得很好,但是表单应该没有html - 甚至不是空标签.我已经确认这不是丢失迁移或浏览器缓存的问题.
我已经简化了问题,现在我的show.html.erb模板文件只是:
<% form_for @post do |f| %>
testing
<% debugger %>
<% end %>
<% for i in 0..5 %>
<%= i %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
(第二个块只是为了确保渲染工作)
渲染的html是:
... bunch of header stuff here ...
<body>
0
1
2
3
4
5
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
"测试"不会作为HTML的一部分呈现.
我输入了调试器行,所以我可以使用调试器gem和rails server --debugger.使用它让我到了这一点:
[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"
Run Code Online (Sandbox Code Playgroud)
因此,form_for正在执行,但不会以某种方式一直传递到输出html.(这就是为什么我不打算告诉你我正在初始化@post.)
我在网上找不到任何类似的问题,但我可能只是找不到合适的东西.有任何想法吗?