направляющие respond_with действие отличающегося в индексе и создают метод

я создаю простой json API в направляющих 3.1. Я создал контроллер, который имеет две функции:

class Api::DogsController < ActionController::Base
  respond_to :json, :xml
  def index
    respond_with({:msg => "success"})
  end

  def create
    respond_with({:msg => "success"})
  end
end

В routes.rb я имею

namespace :api do 
  resources :dogs
end

, Когда я выполняю получить запрос к http://localhost:3000/api/dogs , я получаю корректный json сверху. Когда я делаю сообщение к тому же URL, я получаю исключение направляющих:

ArgumentError in Api::DogsController#create
Nil location provided. Can't build URI.
actionpack (3.1.0) lib/action_dispatch/routing/polymorphic_routes.rb:183:in `build_named_route_call`
actionpack (3.1.0) lib/action_dispatch/routing/polymorphic_routes.rb:120:in `polymorphic_url'
actionpack (3.1.0) lib/action_dispatch/routing/url_for.rb:145:in `url_for'

, Но если я изменяю создать код на

def create
  respond_with do |format|
    format.json { render :json => {:msg => "success"}}
  end
end

, он возвращает json очень хорошо.

кто-то может объяснить, что продолжается здесь?

16
задан Thomas Tremble 5 September 2011 в 03:02
поделиться