0

我想知道我是否对设计提出了太多要求。我想让访问者填写表格,然后在他们按下“提交”按钮时被要求注册。那是容易的部分。我的问题是,一旦用户被重定向到注册表单并填写了它,我就无法将他们重定向回原始表单,以便可以提交该表单(但现在使用用户 ID)。

我在应用程序控制器中使用过“after_sign_in_path_for(resource)”方法,但我的问题是注册后,request.referer 不是原始表单,而是注册表单。我考虑过使用 before_filter :store_location 回调,但后来我意识到它会存储最近的位置,即注册表单的 url。

如何设置将原始表单设计为注册后要呈现的正确位置?

PS 这个问题来自一个相关的问题,位于此处

4

1 回答 1

1

在 ApplicationController 中尝试这个 make 2 方法,它将当前 url 保存到会话,另一个重定向到存储的 url(如果找不到它应该有一个默认值)。然后,在我想为返回添加书签的页面中(您可能不希望某人被送回某些页面),然后保存 url。

应用程序中的 EG.rb

   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

然后,在您希望用户能够返回的页面中:

然后,只需在 after_sign_in_path_for(resource_or_scope) 中调用 redirect_to_back_or_default('在此处输入您选择的默认网址,具体取决于上下文') 即可将某人送回。

于 2012-07-21T00:30:03.987 回答