亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用Ruby on Rails和PostgreSQL自動生成UUID的教程

 更新時間:2015年04月21日 14:47:40   投稿:goldensun  
這篇文章主要介紹了使用Ruby on Rails和PostgreSQL自動生成UUID的教程,主要利用到了PostgreSQL的插件uuid-ossp,需要的朋友可以參考下

Rails 4 能原生態(tài)的支持Postgres 中的UUID(Universally Unique Identifier,可通用的唯一標識符)類型。在此,我將向你描述如何在不用手工修改任何Rails代碼的情況下,用它來生成UUID。

首先,你需要激活Postgres的擴展插件‘uuid-ossp':
 

class CreateUuidPsqlExtension < ActiveRecord::Migration
 def self.up
  execute "CREATE EXTENSION \"uuid-ossp\";"
 end
 
 def self.down
  execute "DROP EXTENSION \"uuid-ossp\";"
 end
end

你可以用UUID作為一個ID來進行替換:

 

create_table :translations, id: :uuid do |t|
 t.string :title
 t.timestamps
end

在此例中,翻譯表會把一個UUID作為ID來自動生成它。Postgresq的uuid-ossp擴展插件所用算法和生成UUID的算法是不同的。Rails 4缺省使用的是v4算法. 你可以在這里: http://www.postgresql.org/docs/current/static/uuid-ossp.html 看到更多有關(guān)這些算法的細節(jié)。


然而,有時候你不想用UUID作為ID來進行替換。那么,你可以另起一列來放置它:
 

class AddUuidToModelsThatNeedIt < ActiveRecord::Migration
 def up
  add_column :translations, :uuid, :uuid
 end
 
 def down
  remove_column :invoices, :uuid
 end
end

這會創(chuàng)建一個放置UUID的列,但這個UUID不會自動生成。你不得不在Rails中用SecureRandom來生成它。但是,我們認為這是一個典型的數(shù)據(jù)庫職責行為。值得慶幸的是,add_column中的缺省選項會幫我們實現(xiàn)這種行為:

 

class AddUuidToModelsThatNeedIt < ActiveRecord::Migration
 def up
  add_column :translations, :uuid, :uuid, :default => "uuid_generate_v4()"
 end
 
 def down
  remove_column :invoices, :uuid
 end
end

現(xiàn)在,UUID能被自動創(chuàng)建了。同理也適用于已有記錄!

相關(guān)文章

  • Ruby常量查找路徑問題深入研究

    Ruby常量查找路徑問題深入研究

    這篇文章主要介紹了Ruby常量查找路徑問題深入研究,本文給出了多個例子來探討Ruby的常量查找路徑,并給出了總結(jié)結(jié)論,需要的朋友可以參考下
    2015-03-03
  • Ruby中一些基本語法知識點的羅列匯總

    Ruby中一些基本語法知識點的羅列匯總

    這篇文章主要介紹了Ruby中一些基本語法知識點的羅列匯總,包括Ruby中的注釋和標識符等基礎(chǔ)內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • Rails實現(xiàn)字段加密存儲

    Rails實現(xiàn)字段加密存儲

    這篇文章主要介紹了Rails實現(xiàn)字段加密存儲的方法以及具體的示例代碼,非常實用,需要的朋友可以參考下
    2017-11-11
  • ruby安裝gem包失敗的通用解決方法

    ruby安裝gem包失敗的通用解決方法

    這篇文章主要介紹了ruby安裝gem包失敗的通用解決方法,需要的朋友可以參考下
    2014-05-05
  • 設(shè)計模式中的模板方法模式在Ruby中的應(yīng)用實例兩則

    設(shè)計模式中的模板方法模式在Ruby中的應(yīng)用實例兩則

    這篇文章主要介紹了設(shè)計模式中的模板方法模式在Ruby中的應(yīng)用實例兩則,經(jīng)典的項目經(jīng)理例子在這里又被套上用了^^需要的朋友可以參考下
    2016-03-03
  • 深入分析Ruby 變量

    深入分析Ruby 變量

    這篇文章主要介紹了Ruby 變量的的相關(guān)資料,文中詳細的講解了幾種變量的概念與用法,幫助大家更好的學習,感興趣的朋友可以了解下
    2020-06-06
  • 使用RVM實現(xiàn)控制切換Ruby/Rails版本

    使用RVM實現(xiàn)控制切換Ruby/Rails版本

    RVM 是Ruby Version Manager的縮寫,是一個命令行工具,它可以讓你輕松地安裝,管理和使用多個版本的Ruby.不同的rails項目使用等ruby和rails版本不一樣的時候,可以使用RVM自由切換。
    2017-06-06
  • Ruby中操作文件的方法介紹

    Ruby中操作文件的方法介紹

    這篇文章主要介紹了Ruby中操作文件的方法介紹,是Ruby學習當中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Ruby中區(qū)分運行來源的方法

    Ruby中區(qū)分運行來源的方法

    這篇文章主要介紹了Ruby中區(qū)分運行來源的方法,本文講解的是類似Python中的if __name__ == '__main__':效果,其實Ruby中也有類似語法,需要的朋友可以參考下
    2015-01-01
  • 使用Ruby re模塊創(chuàng)建復雜的正則表達式

    使用Ruby re模塊創(chuàng)建復雜的正則表達式

    復雜的正則表達式很難構(gòu)建,甚至很難閱讀。Ruby的Re模塊可以幫助你利用簡單的表達式構(gòu)建復雜的正則表達式
    2014-03-03

最新評論