###### tags: `5xruby` `Astro Camp` `套件` # 安裝devise --- ### 安裝 1. ```gem 'devise', '~> 4.7', '>= 4.7.3'``` 2. ```bundle install``` ### 產生devise設定檔 ```rails g devise:install``` ### 加入寄信時預設的網站網址 編輯 config/environments/development.rb 和 production.rb : ```config.action_mailer.default_url_options = { :host => 'localhost:3000' }``` ### 建立model 1. 有兩種方式可供選擇 (1)一般的方式 : ```rails g devise User``` (2)亦可於此時客製化自己想要的欄位名稱(例如多新增account_name、creator此兩個欄位): ```rails g devise User account_name creator``` 2. ```rails db:migrate``` ### 建立view ```rails g devise:views``` - 如果上一個步驟在建立model時,有額外新增自定義的欄位,則需注意app/views/layouts/application.html.erb裡的HTML樣板。將沒有自動生成的部分,自行補足。 ### 將config/initializers/devise.rb裡的這行註解打開 ``` config.scoped_views = true``` ### 設定路徑 1. 先建立一個新的controller,以便指定首頁。 ```rails g controller Pages``` 2. 指定首頁(這邊以pages舉例) ```resources :pages``` ```root to: 'pages#index'``` 3. 在pages_controller.rb(預設首頁的controller)裡增加 ``` before_action :authenticate_user! def index end ``` 4. 到 view / layout / application.html.erb 裡面去調整註冊、登入與登出的按鈕 ``` <% if current_user %> <li><%= link_to “登出”, destroy_user_session_path, method: :delete, class:”btn” %></li> <% else %> <li><%= link_to “註冊”, new_user_registration_path, class:”btn” %></li> <li><%= link_to “登入”, new_user_session_path, class:”btn” %></li> <% end %> ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up