Application de liste de tâches simple. Avoir de la difficulté à marquer les tâches comme complètes sans ajax. Mon approche consistait à créer une colonne "terminée" dans le modèle de tâche qui est un booléen. Définissez ensuite des tâches complètes et incomplètes dans le contrôleur et créez des itinéraires en conséquence. Cela ne semble pas fonctionner et je ne sais pas pourquoi. Quelqu'un peut-il me faire savoir si je le fais mal? Je suis ouvert aux suggestions et aux alternatives s'il vous plaît. à votre santé.Marquer comme tâche complète
Modèle de tâche avec options de portée.
class Task < ActiveRecord::Base
validates_presence_of :title
#validates_presence_of :user_id
default_scope -> { order('created_at DESC') }
belongs_to :user
scope :completed, where(:completed =>true)
scope :incomplete, where(:completed =>false)
end
Routes fichier
match '/tasks/complete/:id' => 'tasks#complete', as: 'complete_task', via: :put
match '/tasks/complete/:id' => 'tasks#incomplete', as: 'incomplete_task', via: :delete
contrôleur Tâches
def complete
@task = current_user.tasks.find(params[:id])
@task.completed = true
@task.save
redirect_to current_user
end
def incomplete
@task = current_user.tasks.find(params[:id])
@task.completed = false
@task.save
redirect_to current_user
end
index Tâches Voir
<h3>Incompleted tasks</h3>
<% current_user.tasks.incomplete.each do |task| %>
<p><%= task.title %>|
<%= link_to "Done", complete_task_path(task), method: :put %></p>
<% end %>
<h3>Completed tasks</h3>
<% current_user.tasks.completed.each do |task| %>
<p><%= task.title %>|
<%= link_to "Undo", incomplete_task_path(task), method: :delete %></p>
<% end %>
Aussi je suis rails de roulement 4.
obtenez-vous une erreur dans l'action complète? –
Pouvez-vous élaborer la partie "ça ne marche pas", qu'est-ce qui ne fonctionne pas? – vee