2017-03-09 9 views
0

このファイルが問題を解決するのに十分であることを願っています。すべては動いている私はちょうどポストを救うことができない。投稿を保存できません。 [POST] "/ posts/new"と一致するルートはありません

路線:

Rails.application.routes.draw do 
    root 'posts#index' 
    resources :posts 
end 

post_controller:

class PostsController < ApplicationController 

    def index 
    @posts = Post.all 
    end 

    def show 
    @post = Post.find(params[:id]) 
    end 

    def new 
    @post = Post.new 
    end 

    def create 
    @post = Post.new(post_params) 
    if @post.save 
     flash[:notice] = "Successfully created post!" 
     redirect_to post_path(@post) 
    else 
     flash[:alert] = "Error creating new post!" 
     render :new 
    end 
    end 

    private 

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

end 
+0

「すくいルート」 – David

+0

'new'が' GET'要求ではないポスト(POSTリクエスト)のためであると考えられるから出力を送信してください。 – fanta

+0

接頭辞動詞URIパターンコントローラ#アクション ルートGET /ポスト#インデックス ポストは/posts(.:format)の記事#インデックス POSTの/posts(.:format)ポスト#は(/ポスト/新しいGET new_post を作成GET:書式#新規投稿 edit_post GET /posts/:id/edit(.:format)posts#編集 投稿GET /posts/:id(.:format)posts#show –

答えて

0

はあなたのポストフォームコードは次のように起動していることを確認してください:

<%= form_for(@post) do |f| %> 
+0

<%= form_for:post do | f | %> –

+0

<%= form_for(@post)do | f |に変更します。 %>と何が起こるかを参照してください。フォームヘルパーはインスタンス変数の名前を取る - ここでは "@post"をパラメータとして使う..フォームヘルパーの詳細はこちら:http://guides.rubyonrails.org/form_helpers.html –

+0

助けてくれてうれしい!親切に答えが受け入れられるとマークしてください:) –

0

あなたはポスト#新しいと "POST" ポスト#作成のためには、 "GET" です。 新しいアクションは、 "POST"に必要なフォームを作成アクションに戻すように設計されています。あなたは新しい行動に投稿しません。

+0

私はRORを新しくしました。どうすれば修正できますか? –

+0

あなたのポストにはどのように新しく行くつもりですか?次のようなリンクが必要です:new_post_path –

+0

index.html.erbにあります –

関連する問題