Je reçois une erreur de requête 400 incorrecte en utilisant Ajax on Rails. Lorsque je soumets mon formulaire, j'ai une chaîne à envoyer en paramètre à partir de Jquery et je veux l'extraire de params [: assignataire] afin que je puisse extraire la chaîne et l'enregistrer à travers mon contrôleur. Mon contrôleur:Ajax Bad Request 400 Rails
def create
@task = Task.new(task_params)
@task.user = current_user
username = params.permit[:assignee]
@task.assignee = username
#set_category
respond_to do |format|
if @task.save
format.html { redirect_to tasks_url, notice: 'Task was successfully created. '+task_params.inspect}
#format.html { redirect_to @task, notice: 'Task was successfully created.' }
format.json { render :show, status: :created, location: @task }
else
format.html { render :new }
format.json { render json: @task.errors, status: :unprocessable_entity }
end
end
end
def task_params
params.require(:task).permit(:owner, :value, :completed, :category, :date, :assignee)
end
Et voici mon JS:
$("#new_task").submit(function() {
alert("form: "+assignee);
//event.preventDefault();
$.ajax({
url: "/tasks",
type: "POST",
data: {assignee},
dataType: "json",
success: function(data) {
alert('successfully');
},
error: function(xhr, textStatus, error) {
alert(xhr.statusText+""+textStatus+""+error);
}
});
});
cessionnaire est un nom d'utilisateur sélectionné sous une forme auto-complétion jquery:
select: function(event, ui) {
var terms = split(this.value);
// remove the current input
terms.pop();
// add the selected item
terms.push(ui.item.value);
// add placeholder to get the comma-and-space at the end
terms.push("");
this.value = terms.join("");
assignee=this.value;
$('input[name=commit]').prop("disabled",false);
return false;
}
Ma racine est « tâche/"où vous pouvez voir les tâches enregistrées et un formulaire pour en créer un nouveau. J'ai beaucoup cherché sur le net et je les ai tous essayés. Comment puis-je faire? Merci beaucoup
ce que vous obtenez dans la console du navigateur? – inye
L'erreur 404 signifie quel client est incapable de trouver un itinéraire. Vérifiez vos routes.rb. –
Désolé, mon erreur! Il est 400. Console: http: // localhost: 3000/tasks/400 (Demande incorrecte) – ValeMarz