如何根据目标URL定制“设计新会话”视图内容



我花了很多时间研究这个问题,但似乎找不到解决方案。我是在Rails 4和使用设计的身份验证。

我的问题:我使用一个单一的视图用户登录(视图/设计/会话/新.html. erbb)。我想根据目标URL/路径自定义视图的H1文本。

示例:对于所有目标路径显示"帐户登录"。如果目标路径为seller_onboarding_path,显示"In order to onboard, please login first"

我不知道如何捕获目标路径…

有什么建议吗?

多谢!

我找到了一个解决我自己问题的方法。我不确定这是不是最优雅的,但确实有效。

在我看来(sign in form),我检查session["user_return_to"]的值。它包含目标页的值。根据这个值,我选择合适的标题来显示。

您可以在设计的RegistrationsController中使用before过滤器存储最后一个页面路径。它看起来像这样:

class RegistrationsController < Devise::RegistrationsController
  before_filter :store_history
  private
  def store_history
    @last_page = request.url
  end
end

在此之后,您可以检查用户在views/devise/sessions/new.html.erb中使用if.. else语句访问的最后一个页面是什么,并相应地显示您的H1标记文本。

最新更新