Я не могу передать параметры действию контроллера в ajax POST-запрос. Существует мой код:Невозможно передать параметры контроллеру в POST AJAX
$("#sendSubCatButton").click(function(){
var catId = $("#category_name").data("id");
var subCatName = $("#sous_category_name").val();
var lvlUrgenceMax = $("#sous_category_lvl_urgence_max option:selected").val();
// alert(catId);
// alert(subCatName);
// alert(lvlUrgenceMax);
$.ajax({
url: '/sous_categories',
type: 'POST',
dataType: 'json',
data: {
name: subCatName,
category_id: catId,
lvl_urgence_max: lvlUrgenceMax
}
});
});
И мой контроллер (только соответствующие части):
def create
@create_new_subcategory = verifRight('create_new_subcategory')
if @create_new_subcategory
@category = Category.find(params[:category_id])
@sous_category = SousCategory.new(sous_category_params)
# Any category have a 'lvl_urgence_max', for those who create an incident.
# With that, we can determine how many an incident is important.
@sous_category.lvl_urgence_max.nil? ? @sous_category.lvl_urgence_max = 10 : false
respond_to do |format|
if @sous_category.save
format.json { render json: @sous_category.id, status: :created }
format.html { redirect_to edit_category_path(@category), notice: 'Vous venez de créer une sous catégorie.' }
else
format.json { render json: @sous_category.errors, status: :unprocessable_entity }
format.html { redirect_to :back, notice: 'Impossible de créer la sous catégorie.' }
end
end
else
renderUnauthorized
end
end
...
def sous_category_params
params.require(:sous_category).permit(:name, :category_id, :lvl_urgence_max)
end
В консоли есть что:
Начато POST "/ sous_categories" для 127.0.0.1 в 2016-08-31 16:08:56 +0200
Обработка SousCategoriesController # создать в HTML
Параметры: { "utf8" => "✓", "authenticity_token" => "EDqyXaq + 2PekfJrLrmn/+ 16AnirzvySD + hkZj5 + cQee2JD2ddMudDRJWXlZkCfKJ3mzw2AWuVAeCPr/y0Y1WVw ==", " sous_category "=> {" имя "=>" efsefesf», "lvl_urgence_max"=> "10"}}
EDIT: Я прокомментировал "оповещения", но я могу видеть значение переменной "CatID" в всплывающем окне предупреждения, но оно не передается.
попробовать это, удалить тип данных: JSON с AJAX кода – Navin
Нету ... '{ "utf8"=> "✓", "authenticity_token"=> "bQo4y190JEC // p1gf7RBdE0LOS1BvBQ9KnzntZ5lLO7LFLcLgQFhugnUWf211EwGzedX37etZLlSW0HI0HQ7Xg ==", «sous_category "=> {" name "=>" efsefesfesf ", " lvl_urgence_max "=>" 10 "}}', и я также попытался использовать тип данных: скрипт и nope тоже ... – mjerem34