如何使用默认设置显示remember_me

时间:2011-07-08 22:46:13

标签: ruby-on-rails ruby-on-rails-3 devise

设计注册表:

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>

  <p><%= f.label :email %><br />
  <%= f.email_field :email %></p>

  <p><%= f.label :password %><br />
  <%= f.password_field :password %></p>

  <p><%= f.label :password_confirmation %><br />
  <%= f.password_field :password_confirmation %></p>

  <p><%= f.submit "Sign up", :class => 'button' %></p>
<% end %>

如何添加remember_me复选框,其中包含“让我在此计算机上登录”等字样。

另外,如何检查默认设置?

我试过这个但是在页面加载时从不检查复选框。

<%= f.check_box :remember_me %>
<%= f.label :remember_me, 'Keep me logged-in on this computer.', :style => 'display: inline-block;' %>

由于

4 个答案:

答案 0 :(得分:4)

首先检查是否启用了Devise rememberable,然后在Rails中添加带有标准表单助手的复选框。要使其默认启用,我们会传递:checked =&gt;在选项哈希中“检查”:

<% if devise_mapping.rememberable? -%>
    <%= f.check_box :remember_me, {:checked => "checked"} %> 
    <%= f.label :remember_me %>
<% end -%>

答案 1 :(得分:1)

最近有人向我指出,上面建议的方法(确实有效)并不理想,因为用户可以取消检查并记住我&#39;但他们的凭据出错了。当表格重新加载时,请记住我&#39;将再次检查,他们可能不会注意到。

所以你可以改用:

<%= f.check_box :remember_me, (resource.remember_me ? {} : { checked: true }) %>

答案 2 :(得分:0)

首先,看看api

http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-check_box

这将是找到这类问题答案的地方。

接受的参数之一是选项哈希,我相信如果你传递:checked => true的内容,它将完成你正在寻找的东西。

答案 3 :(得分:0)