У меня есть метод в моем помощнике приложения, который предназначен для дезактивации задачи в моей базе данных.рельсы: данные удаляются на странице reload
помощник Применение:
def link_to_destroy_task(task_id)
Task.find(task_id).deactivate
end
Модель:
def self.deactivate()
update_attribute(:active, false)
end
Вид:
<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>
почему при загрузке страницы она удаляет все из списка. Не только переключение на false. Он полностью вытирается из базы данных.
Я использую приспособления, поэтому я перезагружаю все тестовые данные, и я могу обновить один раз, чтобы снова увидеть данные, но в следующий раз, когда я перезагружу его, он исчезнет.
Я изменил имя метода на «деактивировать», потому что я думаю, что уничтожение уже выполнено, но метод все еще выполняется без нажатия. Он больше не удаляется, но он дезактивирует все.
ОХК. Я первоначально имел это в контроллере, чем я думал, что я должен переместить его в помощника. Есть ли способ создать ссылку на действие в контроллере приложения? Я хотел, чтобы он был доступен из разных представлений от разных контроллеров. И я не думал, что копирование кода было хорошей идеей – Rumpleteaser