2017-07-25 20 views
0

私はrails 5で簡単なブログを構築しようとしています。私は何も起こりませんHTMLフォーム経由で別のポストを追加しようとするとruby​​ on railsはpermit.requireを使用できません。

def new 
    @post = Post.new 
    @categories = Category.all 

end 

def create 
    @post = Post.new(post_params) 
    if @post_save 
     redirect_to posts_path, :notice => "Post has benn created" 
    else 
     render "new" 
    end 

end 

def post_params 
    params.require(:post).permit(:title, :body, :category_id) 
end 

create_table "posts", force: :cascade do |t| 
    t.string "title" 
    t.text "body" 
    t.integer "category_id" 
    t.integer "author_id" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
end 

そして、私のコントローラメソッド:私は、ポストモデルを作成しました。フォームのあるページがリロードされ、その投稿自体は保存されません。私は間違って何をしていますか?タイプミスが

@post_savecreate方法でありますのでですが@post_saveが定義されていないので@post.save

def create 
    @post = Post.new(post_params) 
    if @post.save 
    redirect_to posts_path, :notice => "Post has been created" 
    else 
    render "new" 
    end 
end 

elseブロックが評価されなければならないとnewページがレンダリングされると、何も

答えて

2

フォームにそのようなフィールドがある場合はauthor_idも許可してください。私が理解するように、投稿はbelongs_to:authorなので。つまり、author_idは投稿作成時に必須です。 また、タイプミスがありますので、 "@ post_save" => "@ post.save!"を変更する必要があります。 (それは以前の答えで言及された)。

+0

はい。それは私の誤りでした。今はすべて正常に動作します。イゴールありがとう! – Jacek717

0

を起こりません

関連する問題