2020年5月11日 星期一

Rails 新增session_token model的欄位

https://ihower.tw/rails/migrations.html

用migration新增model的欄位(儲存格)

 $ Rails g migration add_session_token_to_user session_token:string 

增加欄位

ctrlp>db/migrate/20xxxxxxx_add_session_token_to_user.rb
def change
    add_column :users, :session_token, :string
    add_index :users, :session_token, unique: true
    或是以上兩行換成add_column :users, :session_token, :string  ,:index => { :unique => true }
end

變更資料庫

$ rails db:migrate
$ rails c
>User.first >>看看有沒有新增加成功

更新model的檔案

ctrlp>app/models/user.rb
class User < ActiveRecord::Base
    #||=代表<或者等於>
    #這行表示,在儲存之前,假如session_token沒有資料,那就要自己創密碼的token一個存入。
    before_save {self.session_token ||= Digest::SHA1.hexdigest(SecureRandom.urlsafe_base64.to_s)}
end
         

沒有留言:

張貼留言

cloud9上面開發rails

 使用IAM身分登入,以免有資安問題。(用admin帳號登入,創建iam使用者,然後在上面的連結登入) 選擇 ubuntu18.04 減少查詢成本。 已經是超級使用者了,sudo 什麼都不需要輸入密碼了。 $ ruby -v  檢查 ruby使用的版本>>2.6.3,...