安裝devise gem
ctrl-p>Gemfilegem'devise'
bundle install
terminal/bundle install
安裝devise使用User
rails generate devise:install確定有設定root首頁first page
2. Ensure you have defined root_url to *something* in your config/routes.rb.在routes裡面加進下面的文字
For example:
root to: “home#index”
For example:
<p class=”notice”><%= notice %></p>
<p class=”alert”><%= alert %></p>
<%=current_user.email%> |
<%= link_to('登出', destroy_user_session_path, :method => :delete) %> |
<%= link_to('修改密碼', edit_registration_path(:user)) %>
<% else %>
<%= link_to('註冊', new_registration_path(:user)) %> |
<%= link_to('登入', new_session_path(:user)) %>
<% end %>
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
# ...
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname])
devise_parameter_sanitizer.permit(:account_update, keys: [:nickname])
end
end
For example:
root to: “home#index”
當登入或是發生錯誤要顯示彈跳視窗給使用者可以使用這組設定加到layout
3. Ensure you have flash messages in app/views/layouts/application.html.erb.For example:
<p class=”notice”><%= notice %></p>
<p class=”alert”><%= alert %></p>
讓Table的名稱叫做User
rails generate devise User刷新資料庫結構
rails db:migrate使用者登入
http://localhost:3000/users/sign_in帶判斷的devise登入登出功能
ctrl-p>application.html.erb
<% if current_user %><%=current_user.email%> |
<%= link_to('登出', destroy_user_session_path, :method => :delete) %> |
<%= link_to('修改密碼', edit_registration_path(:user)) %>
<% else %>
<%= link_to('註冊', new_registration_path(:user)) %> |
<%= link_to('登入', new_session_path(:user)) %>
<% end %>
加上自訂欄位到 Devise 的註冊和編輯頁面
跟增加欄位一樣,只是是加進users裡面的欄位,但是會影響的層面有很多歐,以下這三動了一個都會很慘歐。
增加欄位
rails g migration add_nickname_to_users nickname:string >注意為users,複數
rails db:migrate
ctrl-p>application_controller.rb>注意要補上permitted_parameters方法
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
# ...
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname])
devise_parameter_sanitizer.permit(:account_update, keys: [:nickname])
end
end
創devise的view
$ rails generate devise:views編輯views/devise/registrations/edit.html.erb和views/devise/registrations/new.html.erb,加上username欄位
<div><%= f.label :nickname %><br />
<%= f.text_field :nickname %></div>
沒有留言:
張貼留言