我想知道我是否要求过多的Devise。我想允许访问者填写表单,然后在按下“提交”按钮时需要注册。这很容易。我的问题是,一旦用户被重定向到注册表单并填写完毕,我就无法将它们重定向回原始表单,以便那个表单可以提交(但现在与用户ID)。
我在应用程序控制器中使用了“after_sign_in_path_for(resource)”方法,但我的问题是在注册后,request.referer不是原始表单,而是注册表单。我考虑使用before_filter:store_location回调,但后来我意识到它会存储最近的位置,这是注册表单的URL。
如何设置将原始表单设置为注册后呈现的正确位置?
P.S。这个问题来自一个相关的问题,位于here。
答案 0 :(得分:1)
在ApplicationController中尝试使用make 2方法进行保存 会话的当前URL,以及重定向到存储的另一个URL url(如果找不到,则应该有默认值)。然后,在 我想要书签返回的页面(你可能不想要 有人被送回某些页面),然后保存网址。
在application.rb中的EG
def store_location
session['saved_location'] = request.request_uri
end
def redirect_to_back_or_default(default)
if session['saved_location'].nil?
redirect_to default
else
redirect_to session['return-to']
session['saved_location'] = nil
end
end
然后,在您希望用户能够返回的页面中:
然后,打电话 redirect_to_back_or_default('在此处输入您选择的默认网址,具体取决于上下文') 在after_sign_in_path_for(resource_or_scope)中发回某人。