我花了很多时间研究这个问题,但似乎找不到解决方案。我是在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
标记文本。