0

RailsアプリでDeviseとBootstrapを使用しています

Bootstrap navbar には、次のログイン フォームがあります。

<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ページを使用してサインインできますが、ナビゲーション バーでもサインインできるようにしたい :)

4

1 に答える 1

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 %>

登録には別のフォームが必要です。別の登録ページにリンクすることをお勧めします。

于 2012-11-15T17:55:01.093 に答える