商品の作成ページと写真の追加ページがあります。写真の追加ページでは、作成したばかりの製品に写真を追加する必要があります。
写真ページを追加できます/products/:product_id/pics(.:format)
が、送信時にエラーが発生します
ActiveRecord::RecordNotFound (ID なしで製品を見つけることができませんでした):
フォトコントローラー
def create
@product = Product.find(params[:product_id]) # <--- error here
@photo = Photo.new
if @photo.valid?
@photo.product_id = @product.id
@photo.save!
respond_to do |format|
format.html { redirect_to product_path(@product) }
format.json { render json: @product }
end
else
redirect_to root_url, :notice => "Somehting went wrong!"
end
end
pics.html.haml
= form_for @photo, :html => { :multipart => true, :id => "fileupload" } do |f|
= f.file_field :upload
製品コントローラ
def pics
@product = Product.find(params[:product_id])
@photo = Photo.new
# @product.photos.build
end
完全なコンソール エラー
127.0.0.1 の POST "/photos" を 2013-07-09 02:11:11 -0400 で開始しました PhotosController#create as JSON パラメータによる処理: {"utf8"=>"✓", "authenticity_token"=>"K9jWB2D0bFUB5+ KOCRKLUsuDGNLchjzCBCL1h1znOiQ=", "photo"=>{"upload"=>#>}} 完了 404 Not Found in 1ms
ActiveRecord::RecordNotFound (ID なしで製品を見つけることができませんでした): app/controllers/photos_controller.rb:15:in `create'
sachins ソリューションを備えたコンソール
127.0.0.1 の POST "/photos" を 2013-07-09 02:55:25 -0400 で開始しました PhotosController#create as JSON パラメータによる処理: {"utf8"=>"✓", "authenticity_token"=>"5RV+ GUCvNEFrw7l3/ApqAlbK/XJP78LmDR2Hc+O0rQ0=", "product_id"=>"125", "photo"=>{"upload"=>#>}} Product Load (0.1ms) SELECT "products".* FROM "products" WHERE "商品"."id" = ? LIMIT 1 [["id", "125"]] http://google.com/にリダイレクト 完了 302 4ms で発見 (ActiveRecord: 0.1ms)
2013-07-09 02:55:25 -0400 で 127.0.0.1 の GET "/" を開始しました StaticPagesController#home による JSON としての処理 レイアウト/アプリケーション内で static_pages/home.html.haml をレンダリングしました (0.1ms) ユーザー ロード (0.3ms) ) SELECT "users".* FROM "users" WHERE "users"."auth_token" IS NULL LIMIT 1 200 OK を 93 ミリ秒で完了 (ビュー: 91.8 ミリ秒 | ActiveRecord: 0.3 ミリ秒)