J'ai dans mon assistant d'application une méthode destinée à désactiver une tâche dans ma base de données.rails: données en cours de suppression lors du rechargement de la page
aide Application:
def link_to_destroy_task(task_id)
Task.find(task_id).deactivate
end
Modèle:
def self.deactivate()
update_attribute(:active, false)
end
Vue:
<ol id="tasks">
<% @Tasks.each do |task| %>
<%content_tag_for :li, task do %>
<span class ="handle"> [drag] </span>
<%= link_to task.name, :controller => "com_tasks", :action => "edit", :id => task.id %>
<%= link_to_function '[Delete]', link_to_destroy_task(task.id) %>
<% end %>
<% end %>
</ol>
Pour une raison quelconque quand la page se charge, il supprime tout de la liste. Pas seulement basculer actif sur faux. Il l'efface complètement de la base de données.
J'utilise des appareils, donc je recharger toutes les données de test, et je peux rafraîchir une fois pour voir les données à nouveau, mais la prochaine fois que je le recharger est parti.
J'ai changé le nom de la méthode pour « désactiver » parce que je pense que détruire est déjà pris, mais la méthode est toujours en cours d'exécution sans être cliqué. Il ne supprime plus, mais il désactive tout.
OHK. Je l'avais initialement dans le contrôleur que je pensais que je devais le déplacer vers un assistant. Est-il possible de créer un lien vers une action dans le contrôleur d'application? Je voulais qu'il soit disponible à partir de différentes vues de différents contrôleurs. Et je ne pensais pas que la réplication du code était une bonne idée – Rumpleteaser