我想知道实现删除会话对象的链接或按钮(会话[:object])的最佳方法是什么。我在浏览器中存储了一些数据,用户必须能够随时删除这些数据。有什么想法吗?
答案 0 :(得分:3)
我会创建一个名为clear_[whatever]
的路由,并将其绑定到控制器中的自定义操作。
get '/clear-[whatever]', to: '[your controller]#clear_[whatever]', via: [:destroy], as: :clear_[whatever]
您的按钮将是:
<%= link_to clear_[whatever]_path ... %>
并且您的控制器操作应该:
def clear_[whatever]
@clear = session[:whatever] = nil
if @clear ...
...
else
...
end
答案 1 :(得分:2)
您可以创建一个控制器(或者,在您对象的现有控制器中使用非REST方法):
控制器
class WidgetSessionsController < ApplicationController
# "Delete" widget session data
def destroy
# Remove the widget from the session
@_current_user = session[:widget] = nil
end
end
的routes.rb
# obviously you could add create and update here
resources :widget_sessions [only: destroy]
查看
<%= link_to 'Click here to delete your widget session!', widget_session_path(), method: :delete %>