NoMethodError в темах # new (неопределенный метод `content 'для nil: NilClass) для Rails 3 из учебника по netnuts. - PullRequest
0 голосов
/ 06 сентября 2011

Я следовал этому уроку на net.tutsplus Урок на форуме , но столкнулся с некоторыми проблемами. Все комментарии превратились в спам, и статья была забыта.

Я следовал этому уроку, и после публикации новой темы я получаю следующее:

NoMethodError in Topics#new

Showing /var/www/app/views/topics/_form.html.erb where line #9 raised:

undefined method `content' for nil:NilClass

Extracted source (around line #9):

6:     <%= f.text_field :name %>  
7:   </p>  
8:   <p>  
9:     <textarea name="post[content]" cols="80" rows="20"><%= @post.content %></textarea>  
10:   </p>  
11:   <p><%= f.submit "Create" %></p>  
12: <% end %>  

Trace of template inclusion: app/views/topics/new.html.erb

Мои модели / контроллеры и виды были созданы в соответствии с инструкциями из руководства.

Можешь помочь?

Ответы [ 2 ]

1 голос
/ 06 сентября 2011

Явно из отчета об ошибке: @post - ноль, и поэтому вы не можете вызвать .content для него.

Поскольку вы вызываете действие new вы, вероятно, просто пропускаете @post = Post.new в контроллере.

Я не знаком с руководством, но я бы предложил рефакторинг поля строка 9 с чем-то более похожим на строка 6 , в котором используются рельсы, образующие вспомогательные методы. т.е.

<%= f.text_area :content, :cols => 80, :rows => 20 %>
0 голосов
/ 01 апреля 2013

Ваш почтовый объект не инициализирован, вы должны сделать

@post = Post.new

раньше.

...