Rails - 登录是模式窗口时显示登录错误

时间:2014-04-06 07:32:08

标签: ruby-on-rails login rendering

我遇到了一些问题,正在寻找帮助找到原始解决方案。

我的rails应用程序有一个登录表单,它位于模态窗口内。成功登录后,用户将重定向回request.referrer。登录失败后,我希望他被重定向到同一个地方,但登录模式打开并显示闪存[:错误]。

我想过使用ajax进行登录,但是在成功登录后我确实需要刷新页面。

我的问题是:如何在登录模式窗口打开并显示错误的情况下呈现页面?

我很欣赏任何原创的想法!感谢

2 个答案:

答案 0 :(得分:0)

您可以执行以下步骤 -

1)通过远程真实

提交您的登录表单
 form_for @user, url: your_path remote: true, method: :post

2)在控制器中执行以下操作 -

 ##if successfully logged in than redirect to root or from where user came (request.referrer)

     return render js: "window.location = '#{request.referrer.present? ? request.referrer : root_path}'" 

##else render to same login page with errors // or put similar logic here

    return render 'login_path' if @user.errors.present?

渲染页面时,它不会关闭模态窗口

答案 1 :(得分:0)

非常感谢所有的回复者。我尝试了两种不同的解决方案,灵感来自你的评论,最后选择了第二个。

  1. 如果登录成功,则调用ajax然后从呈现的js.erb模板重定向。灵感来自这个答案:https://stackoverflow.com/a/5454887/1936629

  2. 如果登录失败,请添加url参数,如果此参数存在,则打开模态窗口。

  3. 我选择第二个选项的原因是因为它在成功或失败的情况下刷新页面,因此允许我使用闪存哈希或活动记录错误消息等元素。

    再次感谢