2016-03-02 91 views
0

每个主题有许多页面,每个页面都有很多版本。在该主题的所有者的展示主题页面上,我希望用户能够更新该页面上的所有页面和版本。不过,我得到这个错误:Rails - 嵌套循环不起作用

undefined method `versions' for nil:NilClass 

我的节目页:

%h1 
    = @subject.title 
%h3 Subject Synopsis 
%p 
    = @subject.synopsis 

- @subject.pages.each do |p| 
    %h6 
     = p.number 
     = ": " + p.title 
    %p 
     = p.synopsis 
    %table 
     %tbody 
     - p.versions.each do |v| 
      %tr 
      %td v.number 
      %td v.create_at 
    = render 'versions/form' 

版本形成:

= simple_form_for [@page, @page.versions.build] do |f| 
    = f.input :number, placeholder: 'Number', label: false 
    = f.text_area :content, placeholder: 'Content', label: false 
    = f.button :submit 
+0

你也可以发布控制器吗? –

+0

完成。我认为这都是错误的... –

+0

你的控制器中的显示页面动作在哪里? –

回答

0

我没有穿过循环变量。答案是:

= render 'versions/form', p: p 


= simple_form_for [p, p.versions.build] do |f| 
2
- @subject.pages.each do |p| 
     %h6 
      = p.number 
      = ": " + p.title 
     %p 
      = p.synopsis 
     %table 
      %tbody 
      - p.versions.each do |v| 
+0

你的代码和被粘贴的代码有什么区别? –

+0

自从我发布这个答案以来,问题已经更新 –