0

HTTP POST を使用して JSON から Rails サーバー上に新しい "Image" オブジェクトを作成したいと考えています。

images_controller コードは次のとおりです。

class ImagesController < ApplicationController
  respond_to :json

  def create
    @image = Image.new(params[:image])

    respond_to do |format|
      if @image.save
        format.html { redirect_to images_path }
        format.json { render :success => true }
      else
        format.html { render "new" }
        format.json { render json: @image.errors, status: :unprocessable_entity }
      end
    end #respond_to
  end
end

ルート.rb:

MyServer::Application.routes.draw do

  post 'images' => 'images#create'

end

Chrome拡張機能「Simple REST client」を使用しています。これはリクエストです:

URL: http://localhost:3000/images
METHOD: POST
Headers:
Content-Type: application/json
Accept: application/json

Data:
{"image": { "title":"myImage", "url": "someUrl" } }

これは応答です:

Status:500 Internal Server Error
Data:
<title>Action Controller: Exception caught</title>
      <h1>Template is missing</h1>
    <p>Missing template images/create, application/create with {:locale=&gt;[:en], :formats=&gt;[:json], :handlers=&gt;[:erb, :builder, :coffee]}. Searched in:
      * &quot;c:/Users/XXX/workspaceRubyOnRails/my_server/app/views&quot;
    </p>

rake routes の実行: $ rake routes

images_edit GET  /images/edit(.:format) images#edit
 images_new GET  /images/new(.:format)  images#new
     images GET  /images(.:format)      images#index
      image GET  /images/:id(.:format)  images#show
     images POST /images(.:format)      images#create
4

1 に答える 1

1

http://localhost:3000/images.jsonの代わりに にリクエストを送信してみてくださいhttp://localhost:3000/images

于 2013-06-21T16:29:42.417 に答える