我在我的Rails应用程序中使用Devise和Bootstrap
在Bootstrap导航栏中,我有以下登录表单:
<form class="navbar-form pull-right">
<% if current_user %>
<b><%= link_to current_user.name, current_user %></b>
<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
<% else %>
<input class="span2" type="text" placeholder="Email">
<input class="span2" type="password" placeholder="Password">
<button type="submit" class="btn"><%= link_to "Sign in", new_user_session_path %></button>
<button type="submit" class="btn"><%= link_to "Register", new_user_registration_path %></button>
<% end %>
</form>
如果我输入电子邮件/通行证并点击“登录”,则页面刷新,但用户会话未启动(用户尚未登录)。我在这种形式上做错了吗?
我可以使用Devise /sign_in
页面登录,但我希望能够在我的导航栏中这样做:)
答案 0 :(得分:1)
您的表单没有发布到任何内容,那些link_to标记实际上没有做任何事情。 链接与输入不同。
相反,你需要一个这样的表格:
<% if current_user %>
<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
<% else %>
<%= form_for("user", :url => new_user_session_path, :html => { :class => "navbar-form pull-right"}) do |f|%>
<%= f.text_field :email, :class=>"span2"%>
<%= f.text_field :password, :class=>"span2"%>
<%= f.submit "Sign in", :class => "btn"%>
<% end %>
<%= link_to "Register", new_user_registration_path, :class => "btn" %>
<% end %>
您需要一个单独的注册表单,我建议只需链接到另一个注册页面。