2013-08-18 5 views
1

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.

+0

obtenez-vous une erreur dans l'action complète? –

+0

Pouvez-vous élaborer la partie "ça ne marche pas", qu'est-ce qui ne fonctionne pas? – vee

Répondre

Questions connexes