2017-01-02 35 views
0

私は公式ガイドのようなRuby on Railsアプリケーションを作っています。私はモデルのポストを作成し、私はなぜこれが起こっている私は私のbacause、知らないこのActionController :: UrlGenerationError inブログ#new

<%= form_for :blog, url: blog_path do |f| %> 
    <p> 
    <%= f.label :title %> 
    <%= f.text_field :title %> 
    #some other stuff 
    <%= f.submit %> 
<% end %> 

しかしイムrecivingエラー

ActionController::UrlGenerationError in Blog#new 

Showing <some folders>/hello_world/app/views/blog/new.html.erb where line #1 raised: 
No route matches {:action=>"show", :controller=>"blog"} missing required keys: [:id] 
Extracted source (around line #1): 
<%= form_for :blog, url: blog_path do |f| %> 

のようなアプリ/ビュー/ new.html.erbでのform_for製ルートは私のために正しく見えます。マイルートファイル:

Rails.application.routes.draw do 
    resources :users 
    resources :blog 
end 

これは私のblog_controllerです:

class BlogController < ApplicationController 
    def index 
    @posts = Post.all 
    end 

    def new 
    end 

    private 
    def post_params 
     params.require(:blog).permit(:title, :text) 
    end 
end 

私は

def create 
    @post = Post.new(post_params) 
    if @post.save 
     redirect_to @post 
    else 
     render 'new' 
    end 
    end 

を追加しましたが、それは私が削除したときに

エラーが表示されていない助けにはなりませんでしたurl属性をform_for( "url:blog_path")から取得していますが、明らかにその理由でターゲットが動作していないか、私はプロジェクトにいくつかの他のファイルを持っていますが、私はそれらがこの問題のために重要ではないと思います。

答えて

0

def new 
    @blog = Blog.new 
end 

を次のようにコントローラに新しいメソッドのコードを変更してから

<%= form_for @blog, url: {action: "create"} do |f| %> 
    <p> 
    <%= f.label :title %> 
    <%= f.text_field :title %> 
    #some other stuff 
    <%= f.submit %> 
<% end %> 

を次のようにフォームを変更したり、単にあなたは、フォーム自体

<%= form_for Blog.new do, url: {action: "create"} |f| %> 
    <p> 
    <%= f.label :title %> 
    <%= f.text_field :title %> 
    #some other stuff 
    <%= f.submit %> 
<% end %> 
でオブジェクトを作成することができます

これがあなたを助けてくれることを願っています。

+0

部分的に役立ちました。私はもうエラーはありませんでしたが、私のpost_params private mothodはエラーを引き起こします。私は作業中のブログアプリケーションからコードをコピーしましたが、まだエラーを受けていますので、プロジェクトを削除して新規作成しました。 – AbUndZu

+0

可能であれば、ここでエラーを共有してください –

関連する問題