Raymond R
Raymond R

Reputation: 1348

Rails - Nested loop not working

Each subject has many pages and each page has many versions. On the show subject page for the owner of that subject, I want the user to be able to update all the pages and versions on that page. However, I get this error:

undefined method `versions' for nil:NilClass

My show page:

%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'

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

Upvotes: 0

Views: 227

Answers (2)

Raymond R
Raymond R

Reputation: 1348

I wasn't passing through the loop variable. Answer is:

= render 'versions/form', p: p


= simple_form_for [p, p.versions.build] do |f|

Upvotes: 0

Nirajan Pokharel
Nirajan Pokharel

Reputation: 1129

- @subject.pages.each do |p|
        %h6
          = p.number
          = ": " + p.title
        %p
          = p.synopsis
        %table
          %tbody
            - p.versions.each do |v|

Upvotes: 2

Related Questions