使用引导程序自定义Devise sign_in身份验证

时间:2016-08-10 01:39:35

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

我正在使用Devise进行身份验证,但我想使用自己的表单输入。

我已经检查过Devise的sign_in有效。我能够在localhost:3000/users/sign_in

上登录
<h2>Log in</h2>

<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
  <div class="field">
    <%= f.label :email %><br />
    <%= f.email_field :email, autofocus: true %>
  </div>

  <div class="field">
    <%= f.label :password %><br />
    <%= f.password_field :password, autocomplete: "off" %>
  </div>

  <% if devise_mapping.rememberable? -%>
    <div class="field">
      <%= f.check_box :remember_me %>
      <%= f.label :remember_me %>
    </div>
  <% end -%>

  <div class="actions">
    <%= f.submit "Log in" %>
  </div>
<% end %>

<%= render "devise/shared/links" %>

我在索引页面上创建了这个表单,但是我无法使用它(我无法使用下面的代码登录):

    <form class="form-inline">
        <div class="form-group">
          <input type="email" class="form-control" id="user_email" placeholder="email?">
        </div>
        <div class="form-group">
          <label for="exampleInputPassword2">/</label>
          <input type="text" class="form-control" id="user_password" placeholder="password?">
        </div>
        <button type="submit" class="btn btn-primary">Sign In</button>
      </form>

我在rubyonrails.org网站和formhelper上阅读了bootstrap's css page,但它仍然没有说明如何使用bootstrap的形式。

以下是我不理解的一些事情:

以下代码<input type="email" class="form-control" id="user_email" placeholder="email?">,我应该为type=id=添加什么?如何告诉bootstrap的表单提交我的会话的帖子请求?我可以阅读和解释Devise&#39;表单:<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>通过查看:资源是:用户,网址被发送到用户的会话。我在网上找不到关于bootstrap表格的信息。如何使用bootstrap与Devise&#39;集成我自己的自定义表单?会话?

1 个答案:

答案 0 :(得分:1)

你的问题首先与Bootstrap无关。在添加引导程序之前,我会尝试使表单正常工作。

可以像这样创建from:

<%= form_for(:user, :url => session_path(:user)) do |f| %>
  <%= f.text_field :email %>
  <%= f.password_field :password %>
  <%= f.check_box :remember_me %>
  <%= f.label :remember_me %>
  <%= f.submit 'Sign in' %>
  <%= link_to "Forgot your password?", new_password_path(:user) %>
<% end %>

现在,您可以为此表单添加一些引导程序风格:

<%= form_for(:user, :url => session_path(:user)) do |f| %>
  <div class="form-group">
    <%= f.text_field :email, placeholder: 'example@example.com' %>
  </div>
  <div class="form-group">
    <%= f.password_field :password %>
    <%= f.check_box :remember_me %>
    <%= f.label :remember_me %>
  </div>
  <%= f.submit 'Sign in', class: 'btn btn-primary' %>
  <%# link_to "Forgot your password?", new_password_path(:user) %>
<% end %>

我的大多数信息来自this page of the devise wiki