【分享】如何在其他页面中实现登入功能,无需跳转至登入页面。

先看效果:

如何才能实现在详情页面(或任何页面)登入!(不需要跳转到登入页面),登入后直接返回之前页面。(通常登入后会被导向首页)

做弹窗登入,你需要解决三个问题:

  • 如何在在其他页面实现登陆功能?
  • 登入后如何跳转回之前的页面?
  • 最好把登入成功的英文提示关掉。
现在,我来帮你解决……

开始:

本教程以Job-listing为例。

step1:解决:在其他页面实现登入。

  1. 找到你想插入的页面对应的helper。比如:在jobs的show.html.erb页面。我们找到app/helpers/jobs_helper.rb填入:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def resource_name
    :user
    end
    def resource
    @resource ||= User.new
    end
    def devise_mapping
    @devise_mapping ||= Devise.mappings[:user]
    end

step2: 解决:登入后跳转回之前的页面。

  1. 打开app/controllers/application_controller.rb 填入:

    1
    2
    3
    4
    5
    6
    7
    before_action :store_current_location, :unless => :devise_controller?
    private
    def store_current_location
    store_location_for(:user, request.url)
    end

step3: 解决:如何关闭登入成功提示?

  1. 找到config/locales/devise.en.yml,把下图中的字段清空。

ok,三个问题解决了,就可以开始实做登入弹窗了。

关于登入弹窗,w3schools有详尽的教程:https://www.w3schools.com/howto/howto_css_login_form.asp

大家遇到问题,可以加我微信一起探讨。

同系列教程:

希望你5票投我1票!

这是我用很多很多注意力堆出来的参赛作品,希望精心的作品能打动你。如果你手上还有票,这个作品值得你投上一票!欢迎浏览网址细节:【全栈小伙伴求职网】https://fullstack.xinshengdaxue.com/works/345