0
エラーが発生しました:NilClassの未定義メソッド` model_name':クラス下記の新しい投稿ビューを呼び出すとき。私はこれについて多くの研究をしましたが、インスタンス変数@postsがコントローラで定義されていないときにほとんど発生するようです。また、routesファイルに "resources:posts"を含めました。ビューを呼び出すときに未定義のメソッド `model_name '
コントローラでこれを宣言しました。 Current_userは、現在ログインしているユーザーの@userです。 user_idが現在のユーザーで埋められている新しいレコードを作成しようとしています。
class PostsController < ApplicationController
def create
@post = current_user.posts.build(params[:post])
if @post.save
flash[:success] = "Post created!"
redirect_to root_path
else
render 'pages/home'
end
end
end
new.html.erb:
<h1>Create Post</h1>
<%=form_for(@post) do |f|%>
<div class="field">
<%=f.label :title %><br />
<%=f.text_field :title%>
</div>
<div class="field">
<%=f.label :body %><br />
<%=f.text_field :body%>
</div>
<div class="field">
<%=f.label :quantity %><br />
<%=f.text_field :quantity%>
</div>
<div class ="actions">
<%= f.submit "Post" %>
</div>
<%end%>
"def create"メソッドを "def new"に更新しました。画面はUrlバーの「新しい」ルートで点滅し、フォームに何も入力させずにすぐにリダイレクトされます。ただし、投稿テーブルの新しい行が作成されます。 – kyle
**もちろん!**あなたはどう思いましたか?それを 'create'に名前を変更し、私の投稿と同様に' new'を追加してください。 –
私はこのRailsの本をお勧めします:http://pragprog.com/book/rails4/agile-web-development-with-rails –