我正在重新创建这个rails教程中的步骤:
http://www.youtube.com/watch?v=tUH1hewXnC0
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 %>
(第二个块只是为了确保渲染工作)
渲染的html是:
... bunch of header stuff here ... <body> 0 1 2 3 4 5 </body> </html>
“测试”不会被渲染为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"
因此,form_for正在执行,但不会以某种方式一直传递到输出html. (这就是为什么我不打算告诉你我正在初始化@post.)
我在网上找不到类似的问题,但我可能只是找不到合适的东西.有任何想法吗?
解决方法
你错过了=符号:<%= form_for @post do | f | %GT;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。