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コントローラーに欠けているだけです。

私はチュートリアルに慣れていませんが、フィールド9行目を、レール フォーム ヘルパー メソッドを使用する6 行目に似たものにリファクタリングすることをお勧めします。すなわち

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

あなたの投稿オブジェクトは初期化されていません。

@post = Post.new

前。

于 2013-04-01T07:22:42.700 に答える