应用程序允许用户进行生成会话数据的各种操作。然后,用户可能想要基于该数据执行交易。登录或注册是必要的。
不幸的是,Devise中的会话控制器创建了一个新会话,丢弃了所有数据。我还没有找到一种允许维护现有会话数据的简洁技术,因为这是将数据写入cookie的首选方法。
after_sign_in_path_for(resource)
仅允许用户返回上一页
Context rails 3.2.18,设计2.2.4
答案 0 :(得分:0)
可以覆盖会话控制器。鉴于此上下文具有2个上下文不同的入口点(generic_url vs confirm_transaction_url),可以继承以下各种参数设置,并且用户返回上一页/他正在使用
class SessionsController < Devise::RegistrationsController
def destroy
param1 = session[:param1] unless session[:param1].nil?
param2 = session[:param2] unless session[:param2].nil?
confirm_url = session[:confirm_url] unless session[:confirm_url].nil?
previous_url = session[:previous_url] unless session[:previous_url].nil?
super
session[:param1] = param1
session[:param2] = param2
session[:confirm_url] = confirm_url
session[:previous_url] = previous_url
end
end
应用程序控制器将路由用户
def after_sign_in_path_for(resource)
session[:previous_url] || session[:confirm_url]
end
为了编制索引而发布的答案。感谢来自onemanarmy
的指针