Jestem nowym do szyn i próbuje zmienić wartość logiczną za pomocą wyboru i za pomocą jquery ajax:Szyny zmienić wartość logiczną z wyboru i jquery ajax
<%- @tasks.each do |task| %>
<div class="task-wrapper">
<%= check_box_tag 'completed', task.id , task.completed, :class => "task-check" %>
<%= content_tag :span, task.task %>
<%= content_tag :span, task.deadline %>
</div>
<% end %>
i javascript:
$(".task-check").bind('change', function(){
if (this.checked){
var bool = this.checked ? 1 : 0;
$.ajax({
url: '/todos/toggle',
type: 'POST',
data: '{"task_id":"'+ this.value +'", "bool":"'+ bool +'"}'
});
}
else {
alert("no");
}
});
wówczas regulator:
def toggle(task_id, bool)
@task = Todo.find_by_id(task_id)
if @task != nil?
@task.update_attributes(:completed => bool)
else
set_flash "Error, please try again"
end
end
końcu trasy:
resources :todos do
member do
post 'toggle'
end
end
również wypróbowany kolekcji, ale daje ten sam błąd.
kiedy kiedykolwiek spróbuję, otrzymam od akcji 404 error
.
na czym polega problem?
dzięki
Czy twoja pętla zadań znajduje się wewnątrz formularza? – Catfish
@Catfish - nie ma poza formularzem – Wahtever
Dlaczego nie umieścić go w formularzu? To byłoby o wiele prostsze. Wtedy zamiast 'check_box_tag' możesz użyć' f.check_box'. – Catfish