0

商品の作成ページと写真の追加ページがあります。写真の追加ページでは、作成したばかりの製品に写真を追加する必要があります。

写真ページを追加できます/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 ミリ秒)

4

5 に答える 5

2

これを試してください: ---

写真コントローラー

def new
  @product = Product.find(params[:product_id])
  @photo = Photo.new 
  @photo.product_id = @product.id
end

pics.html.haml

= form_for @photo, :html => { :multipart => true, :id => "fileupload"  } do |f|
  = f.file_field :upload
  = hidden_field_tag 'product_id', @photo.product_id
于 2013-07-09T06:34:16.057 に答える