【问题标题】:sign_in_count first time Railssign_in_count 第一次使用 Rails
【发布时间】:2020-02-11 15:30:40
【问题描述】:

我正在尝试为新用户设置一个模式,上面写着“欢迎”(或其他消息),我正在使用“sign_in_count”来记录登录次数。 目前我有这样的事情:

<% if current_user.sign_in_count == 1  %>
  <div class="modal fade in" id="myModal0" role="dialog">
    <div class="modal-dialog modal-lg">
      <div class="modal-content" style="width: 90%" >
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
        </div>
        <div class="modal-body">
          <h3 style="color: black; position: center">¡Welcome! <%=current_user.name%>.</h3>
          <iframe src="/uploads/pdfs/5.pdf" width="700px" height="650px"></iframe>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
    </div>
  </div>
<%end %>

很明显,如果用户第一次进入,sign_in_count会一直等于1,并且每次用户重新加载页面都会出现modal,除非用户断开连接重新进入(不是这个思路);如果sign_in_count+=1 没有增加。有没有办法在第一次登录时sign_in_count is 2?当用户是新用户时,模态必须出现;或您可以提供的任何解决方案?我真的很感激帮助。 干杯,谢谢!

【问题讨论】:

    标签: html ruby-on-rails devise


    【解决方案1】:

    我只需将查询字符串参数添加到您在注册后重定向到的任何 url。例如:

    def after_sign_up_path_for(resource)
      root_path(show_welcome_popup: true)
    end
    

    How To: Redirect to a specific page on successful sign up (registration)

    然后你可以检查:

    <%= if params[:show_welcome_popup] %>
      # ...
    <% end %>
    

    显示弹出窗口后,使用history.replaceStatemodify the browser history

    // path/to/some/file.js
    history.replaceState(null, window.title, window.location.pathname)
    

    如果用户点击后退按钮,这将防止弹出窗口再次出现。

    【讨论】:

    • 感谢您的帮助,但是在互联网上更深入地咨询,我找到了我需要的东西
    【解决方案2】:

    我用下面的代码行解决了。

     <% if current_user.sign_in_count == 1  %>
      <div class="modal fade in" id="myModal0" role="dialog">
        <div class="modal-dialog modal-lg">
          <div class="modal-content" style="width: 90%" >
            <div class="modal-header">
              <button type="button" class="close" data-dismiss="modal">&times;</button>
            </div>
            <div class="modal-body">
              <h3 style="color: black; position: center">¡Welcome! <%=current_user.name%>.</h3>
              <iframe src="/uploads/pdfs/5.pdf" width="700px" height="650px"></iframe>
            </div>
            <div class="modal-footer">
              <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
          </div>
        </div>
      </div>
      <%=current_user.increment!(:sign_in_count) %>
    <%end %>
    

    下一行的作用&lt;%=current_user.increment!(:sign_in_count) %&gt; 是正式增加一个属性,这里:sign_in_count就是要增加的属性。

    干杯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 1970-01-01
      • 2021-09-30
      相关资源
      最近更新 更多