0

我一直在 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

我的模型/控制器和视图已按照教程的指示创建。

你能帮我吗?

4

2 回答 2

1

从错误报告中明确表示: @post为 nil,因此您无法调用.content它。

由于您正在调用一个操作,因此您可能只是@post = Post.new在控制器中丢失了。

我对本教程不熟悉,但我建议使用更像line 6的东西重构字段line 9,它使用 rails 表单辅助方法。IE

<%= f.text_area :content, :cols => 80, :rows => 20 %>
于 2011-09-06T00:39:09.213 回答
0

您的帖子对象未初始化,您必须这样做

@post = Post.new

前。

于 2013-04-01T07:22:42.700 回答