我正在嘗試設置註冊和登錄頁面在相同的視圖和根網址。Rails 3 - 設計註冊和同時登錄查看(多重定向)
我通過更改用戶/會話/新視圖(設計生成的視圖)來放置2種表單(註冊和登錄)。
到目前爲止好,但我有2個問題:
首先,當我嘗試註冊並具有無效數據,它重定向我mywebapp /用戶,同時它應該重定向到同一頁面mywebapp/(root_path)。第二,如果我嘗試登錄,它會成功地做到這一點,並重定向到正確的URL(root_path也),但它一直試圖重定向到它,我得到的錯誤「太多的重定向到http://localhost ...「。
我的routes.rb:
devise_for :users do
root :to => "devise/sessions#new"
end
我的用戶/會話/ new.rb:
<% if user_signed_in? %>
<%= render 'users/sessions/home' %>
<% else %>
<%= render 'users/sessions/login' %>
<% end %>
我_login.rb部分:
<h1>Index</h1>
<hr/>
<h2>Log in</h2>
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
<table>
<tr>
<td><%= f.label :email %></td>
<td><%= f.email_field :email %></td>
</tr>
<tr>
<td><%= f.label :password %></td>
<td><%= f.password_field :password %></td>
</tr>
</table>
<% if devise_mapping.rememberable? %>
<%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
<% end %>
<div><%= f.submit "Log in" %></div>
<% end %>
<% if devise_mapping.recoverable? %>
<%= link_to "Forgot your password?", new_password_path(resource_name) %><br/>
<% end %>
<hr/>
<h2>Sign up</h2>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<table>
<tr>
<td><%= f.label :first_name %></td>
<td><%= f.text_field :first_name %></td>
</tr>
<tr>
<td><%= f.label :last_name %></td>
<td><%= f.text_field :last_name %></td>
</tr>
<tr>
<td><%= f.label :email %></td>
<td><%= f.email_field :email %></td>
</tr>
<tr>
<td><%= f.label :password %></td>
<td><%= f.password_field :password %></td>
</tr>
<tr>
<td><%= f.label :password_confirmation %></td>
<td><%= f.password_field :password_confirmation %></td>
</tr>
</table>
<div><%= f.submit "Sign up" %></div>
<% end %>
我_home部分就是現在是空的觀點。
在此先感謝。
你能否詳細說明如何調用'渲染部分'設計視圖不是部分。你是否建議將它們製作成偏片並將它們放在一個視圖中? –
如果您想要在一個頁面上登錄/註銷表單,您可以修改../registrations/new.html.erb和../sessions/new.html.erb頁面,將渲染部分與這兩種表單放在一起。這兩個new.html.erb應該有相同的形式(我的命題是使用部分視圖)。 –
@MichałZalewski您是否找到解決問題的方法?如果您願意,請分享。 –