如何根据目标URL自定义Devise New Session视图内容?

时间:2015-10-04 06:59:29

标签: ruby-on-rails ruby-on-rails-4 devise

我花了很多时间研究这个,但似乎无法找到解决方案。我在Rails 4上并使用Devise进行身份验证。

我的问题:我正在使用一个单一视图进行用户登录(views / devise / sessions / new.html.erb)。我想根据目标网址/路径自定义视图的H1文本。

例如:对于所有目标路径显示“帐户登录”。如果目标路径为seller_onboarding_path,则显示“为了登船,请先登录”。

我不知道如何捕捉目标路径...

有什么建议吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

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

在我的观点(登录表单)上,我检查 会话[" user_return_to"] 的值。它包含目标页面的值。根据该值,我选择要显示的正确标题。

答案 1 :(得分:0)

您可以在设计的RegistrationsController中存储带有前置过滤器的最后一页路径。它看起来像这样:

class RegistrationsController < Devise::RegistrationsController
  before_filter :store_history

  private
  def store_history
    @last_page = request.url
  end
end

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