RoR XML API говорит, что маршрут не найден. добавление маршрута вручную не помогает. Что я делаю неправильно? - PullRequest
0 голосов
/ 20 января 2012

Команда, которую я пытаюсь выполнить с терминала:

curl "http://acme.example.com/controller_name/destroy.xml?api_key=123&id=150&other_id=430"

Просто простой запрос GET, ничего особенного там нет.

Но когда я это делаю, я получаю эту ошибку:

ActionController::RoutingError 
(No route matches "/controller_name/destroy.xml" with 
{:remote_ip=>"127.0.0.1", 
 :accepts=>"*/*", 
 :protocol=>"http://", 
 :subdomain=>"acme", 
 :method=>:get, 
 :request_uri=>"/controller_name/destroy.xml?api_key=123&id=150&other_id=430", 
 :port=>80, 
 :content_type=>nil, 
 :domain=>"example.com"}):

Итак, я добавил это в свой файл rout.rb:

  map.connect "/controller_name/destroy", :controller => :controller_name, :action => :destroy

Но я получаю ту же ошибку, поэтому добавленный маршрут не помогает вообще.

Вот метод уничтожения из имя_контроллера

  def destroy
    @other = Other.find(params[:other_id])
    attachment = @other.attachments.find(params[:id])
    attachment.destroy

    @attachments = @other.attachments

    respond_to do |format|
      format.xml do
        head :ok 
      end
    end
  end

В маршрутах.rb имя_контроллера просто включено следующим образом:

  map.resources :others, :has_many => [:controller_names]

и все AJAXв контроллере работают нормально ... даже для того же метода вызов уничтожения с помощью AJAX-запроса работает .... но не часть XML .....> _ <</p>

1 Ответ

0 голосов
/ 20 января 2012

Похоже, вам не хватает формата по запросу.

map.connect "/controller_name/destroy(.:format)", :controller => :controller_name, :action => :destroy
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...