Рельсы 3.1 монтируемые движки HTTP 404 ошибка при ajax после вызова
Я создаю свой первый плагин для движков Rails 3.1, в котором у меня есть контроллер по имени инициатив_контроллер, и у меня есть действие, известное как загрузка, всякий раз, когда я пытаюсь позвонить, чтобы загрузить действие через jquery ajax, вызов "post" вызывает его, возвращая мне ошибку 404. проблема в rout.rb, потому что он использовал работу в Rails 3.0
Мой route.rb выглядит так
Marcal::Engine.routes.draw do
resources :media
resources :initiatives
post "initiatives/upload"
end
Мои инициативы_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
конец конец
И я использовал сделать вызов AJAX, как показано ниже
$.ajax({
url: "/initiatives/upload",
type: "POST",
data: "medium=something"
dataType: "json",
success: function(sucessdata)
{
alert("success");
}
});
конец
1 ответ
Ваше фиктивное приложение, вероятно, смонтировано в "/ marcal", который используется по умолчанию при создании монтируемого движка. Вы, вероятно, не простой Ajax, потому что он отправляет POST на " / arguments / upload " вместо желаемого " / 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 является ключом здесь.