0

我想使用 HTTP POST 从 json 在 Rails 服务器上创建一个新的“图像”对象。

这是 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 扩展“简单 REST 客户端”。这是请求:

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 路线:$ rake 路线

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 回答