【问题标题】:Devise Forgot password in bootstrap modal in a Rails Application在 Rails 应用程序的引导模式中设计忘记密码
【发布时间】:2014-11-09 22:46:39
【问题描述】:

我正在 Rails 4 中构建一个小型应用程序。我正在使用设计进行身份验证。

我想在弹出/弹出窗口中设置我的登录。我已经使用引导模式来实现这一点。我已经按照这个链接成功实现了这一点。

https://github.com/plataformatec/devise/wiki/How-To:-Display-a-custom-sign_in-form-anywhere-in-your-app

以下是我的代码

application.html

    <ul class="nav navbar-right">
      <% if user_signed_in? %>
         <div id="loggedinuser"> <%= current_user.email %>. Not you? </div>
         <%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
      <% else %>
         <li><a href="" data-toggle="modal" data-target="#myModal" class="btn btn-small btn-info">Log IN</a></li>
      <% end %>
    </ul>

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<%= form_for(:user, :url => session_path(:user)) do |f| %>
      <%= f.email_field :email, class: 'form-control', placeholder: 'Enter email' %>
      <%= f.password_field :password, class: 'form-control', placeholder: 'Enter password' %>
      <%= f.submit 'Sign in', class: 'btn btn-block btn-info' %>
 <% end %>
 <%= link_to content_tag(:small, 'Forgot your password?'), new_password_path(:user) %> 
</div>

问题在于忘记密码链接。它需要我从模式弹出窗口中更改密码路径。

有什么方法可以在相同的模式中打开它来替换内容?

我看到以前在这里问过同样的问题,但没有人回答。

https://stackoverflow.com/questions/24878494/devise-forgot-password-popover-modal

希望这次有人能帮帮我。

非常感谢任何帮助。

【问题讨论】:

    标签: ruby-on-rails twitter-bootstrap devise bootstrap-modal


    【解决方案1】:

    在控制器中创建一个按钮或表单来触发自定义操作(比如forgot_password)。

    def forgot_password
      respond_to do |format|
        format.js
      end
    end
    

    然后在该控制器的视图文件夹中创建一个名为 forgot_password.js.erb 的 js 视图模板。在模板中添加这样的内容:

    $("#your-modal-body-id").html("<%= escape_javascript (render partial: 'forgot_password') %>");
    

    确保为模态体提供与 js 视图模板中匹配的 id。

    根据需要创建您的 forgot_password 部分。

    【讨论】:

    • 非常感谢您的回答。我昨天尝试了一种不同的方法。我将这两种形式都包含在模态中,并使用 javascript 来隐藏和显示各自的形式。它工作正常。但是哪种方法更好?你的还是我的?我对这一切有点陌生。
    • 如果没有什么可以从服务器传回,我实际上更喜欢你的方法(听起来是这样)
    • 太棒了。再次感谢您的澄清。
    • 如果可以的话,能否请您帮我解决我一直在苦苦挣扎的另一个问题。这是该问题的链接stackoverflow.com/questions/26400380/…
    猜你喜欢
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    相关资源
    最近更新 更多