Я пытаюсь отследить, какую страницу посещает пользователь и когда пользователь получает доступ и уходит. Я успешно сохраняю время доступа, следуя советам в как изменить базу данных значения со ссылкой. Вот поток:
- (в представлении А) пользователь нажимает кнопку на странице А
- (в действии B) создать новую запись для хранения времени доступа
- (в действии B) перенаправление на страницу B
Но когда я хочу применить этот метод для хранения времени отпуска, у меня возникают некоторые проблемы. Я хочу обновить время, когда пользователь покидает страницу, на запись, которую я только что создал. Вышеупомянутый метод работает только тогда, когда пользователь нажимает кнопку «Назад», которую я создаю на веб-странице.
Если пользователь нажмет кнопку «Назад» браузера, он ничего не сделает. Я предполагаю, что причина, по которой update_attribute
не работает, заключается в том, что ruby on rails не вызывает действие в контроллере, пока нажата кнопка «Назад» в браузере..... Как это может работать, когда пользователь нажимает кнопку «Назад» в браузере? сильный>
Поток может быть примерно таким:
- (в viewB) пользователь нажимает кнопку «Назад» на странице B ИЛИ нажимает кнопку «Назад» в браузере
- (в действии) обновить время отпуска
- (в действии A) перенаправление на страницу A
обзор.html.erb
# while click the "Back" button, redirect to "store" and update leave time for the record just create
<%= button_to "Back", {:action=>"stores", :user=>@product.user, :order=>@product.order}, :method=>:get %>
контроллер.rb
def store
@user = params[:user]
@order = params[:order]
@lastevent = Event.where(:user=>@user).order("id").last
@lastevent.update_attributes!(:leave_time => Time.now)
end