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")から取得していますが、明らかにその理由でターゲットが動作していないか、私はプロジェクトにいくつかの他のファイルを持っていますが、私はそれらがこの問題のために重要ではないと思います。
部分的に役立ちました。私はもうエラーはありませんでしたが、私のpost_params private mothodはエラーを引き起こします。私は作業中のブログアプリケーションからコードをコピーしましたが、まだエラーを受けていますので、プロジェクトを削除して新規作成しました。 – AbUndZu
可能であれば、ここでエラーを共有してください –