undefined method `values_at' for nil:NilClass
表格结构如下:
<%= nested_form_for page,form_options do |f| %> # ClIEntPage fIElds # ClIEntSections <%= f.link_to_add "Add new section",:content_sections %><% end %>
只要至少有一个与页面关联的ClIEntSection,这就可以正常工作.一旦没有,就会抛出错误.删除link_to_add也会停止抛出错误. (在ContentSection下实际上有第二个嵌套模型,如果没有相关模型,则会出现同样的问题.)
不知道我错过了什么相当明显的东西,但任何指针或建议将不胜感激.
解决方法 最后解决了这个错误 – 错误是由于我以略微非标准的方式使用gem.在表单中,而不是以标准方式呈现所有内容部分:<%= f.fIElds_for :content_sections do |section_form| %> # section fIElds<% end %>
我把它放在一个循环中,因为我需要每个项目的索引(它不存储在模型本身中):
<% page.content_sections.each_with_index do |section,index| %> <%= f.fIElds_for :content_sections,section do |section_form| %> # section fIElds <% end %><% end %>
这样做的问题是如果关联为空,则不会调用fIElds_for方法,因此gem无法构建对象的蓝图(用于在调用link_to_add时添加额外的项目).
解决方案是确保即使关联为空也会调用fIElds_for:
<% if page.content_sections.empty? %> <%= f.fIElds_for :content_sections do |section_form| %> # section fIElds <% end %><% end %>总结
以上是内存溢出为你收集整理的ruby-on-rails-3 – 使用带有空关联的nested_form gem时出错全部内容,希望文章能够帮你解决ruby-on-rails-3 – 使用带有空关联的nested_form gem时出错所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)