рельсы 3.1 монтируемые движки HTTP 404 ошибка при ajax после вызова - PullRequest
0 голосов
/ 15 января 2012

Я создаю свой первый плагин для движков Rails 3.1, в котором у меня есть контроллер с именем init_controller, и у меня есть действие, называемое загрузкой, всякий раз, когда я пытаюсь сделать вызов, чтобы загрузить действие через jquery ajax, вызов "post" вызывает его, возвращая мне ошибку 404.есть какая-то проблема в routs.rb, потому что она использовала работу в Rails 3.0

Мой route.rb выглядит так:

Marcal::Engine.routes.draw do
   resources :media
   resources :initiatives
   post "initiatives/upload"
end

Мой init_controller.rb

class InitiativesController < ApplicationController
   def upload
     puts "hiiiii"
     @medium = Medium.new(params[:medium])
     if @medium.save
        render :json => { 'status' => 'success' }
     else
        render :json => { 'status' => 'error' }
     end
  end

endend

И я использовал вызов ajax, как показано ниже

          $.ajax({
            url: "/initiatives/upload",
            type: "POST",
            data: "medium=something"
            dataType: "json",
            success: function(sucessdata)
            {
              alert("success");
            }

         });      

end

1 Ответ

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

Ваше фиктивное приложение, вероятно, смонтировано в "/ marcal", которое используется по умолчанию при создании монтируемого движка. Вы ajax, вероятно, не простой, потому что он отправляет POST на « / инициативы / загрузки » вместо желаемого « / marcal / инициатив / загрузки ».

Возможно, вы захотите переименовать ваш файл javascript из «name.js» в «name.js.erb» и изменить его содержимое на:

$.ajax({
  url: "<%= root_path %>initiatives/upload",
  type: "POST",
  data: "medium=something"
  dataType: "json",
  success: function(sucessdata)
  {
    alert("success");
  }
});

Здесь ключ root_path.

...