狀態: 廢棄
本文已被廢棄,不再維護。
原因
我們現在提供最新的教程,以使用Rails與Postgres,這些教程是針對個別平台定制的。
請參見
本文仍然可能作為參考有用,但可能無法正常工作或遵循最佳實踐。我們強烈建議使用最近針對您所使用的操作系統撰寫的文章。
介绍
Postgres(或PostgreSQL)是一个开源数据库。Ruby on Rails是用Ruby编写的开源Web框架。Rails是数据库无关的,这意味着它可以与各种不同的数据库一起使用。默认情况下,它假定正在使用MySQL,但也可以很容易地改用Postgres。
本指南将指导您创建一个使用Postgres数据库的Rails应用程序。您可以在本地计算机或 VPS上按照本指南操作。
安装要求
使用 RVM 安裝 Rails
安裝 Rails 最簡單的方法是使用 RVM,它也會安裝 Ruby。要安裝 RVM,您需要確保系統已安裝 curl(如何安裝取決於您的作業系統)。如果您已經安裝了 RVM,請跳至下一節。
RVM 可以在其安裝過程中自動安裝 Ruby 和 Rails。要這樣做,執行此命令:
\curl -L https://get.rvm.io | bash -s stable --rails
注意:在執行此命令(或任何其他遠端腳本)之前,您應該檢查 RVM 安裝腳本。
RVM 將安裝在您的系統上。您現在可以使用它來管理您的 Ruby 版本。這很有用,因為您可能需要為不同的項目使用不同版本的 Ruby。RVM 還為我們安裝了 Rails 寶石。
使用 RubyGems 安裝 Rails
如果您已經安裝了 RVM,則無需重新安裝它。而是可以通過安裝寶石來安裝 Rails:
gem install rails
這將安裝 Rails 和它所需的任何其他寶石。
安裝Postgres
安裝Postgres的方法取決於您的操作系統。請參閱 postgresql.org/download 以查看完整列表。通常,最簡單的方法是在Ubuntu上使用apt-get或在OS X上使用Homebrew等包管理器。
如果您在本地安裝Postgres,您可能還想安裝一個GUI(儘管本指南假設使用命令行)。 pgAdmin 不是世界上最漂亮的工具,但它完成了工作。
最後,您會想要安裝pg gem,以便您可以從Ruby代碼與Postgres進行交互。要這樣做:
gem install pg
設置Postgres
為我們接下來要創建的Rails應用程序創建一個Postgres用戶。要做到這一點,請切換到Postgres用戶:
su - postgres
之後訪問Postgres:
psql
然後創建一個用戶(或“角色”,如Postgres所稱):
create role myapp with createdb login password 'password1';
創建您的Rails應用程序
要創建一個配置為Postgres的Rails應用程序,運行此命令:
rails new myapp --database=postgresql
這會建立一個名為“myapp”的目錄,其中包含一個名為“myapp”的應用程式(在執行命令時,您可以將其命名為任何您喜歡的名稱)。Rails期望數據庫用戶的名稱與應用程式的名稱匹配,但如果需要,您可以輕鬆更改。
我們現在將配置Rails將要連接的數據庫。這是使用database.yml文件完成的,該文件位於:
RAILS_ROOT/config/database.yml
注意:RAILS_ROOT是Rails根目錄。在上面的示例中,它將位於/myapp(相對於您當前的位置)。
database.yml文件由Rails用於連接到當前Rails環境的適當數據庫。它使用YAML,這是一種數據序列化標準。這裡列出了一些不同環境的數據庫;開發、測試和生產。默認情況下,Rails將為每個環境期望不同的數據庫。這很方便,因為例如,每次運行Rails測試時,測試數據庫都會被清空並重新構建。對於每個數據庫,請確保用戶名和密碼與您給Postgres用戶的用戶名和密碼相匹配。
配置完成後,您的database.yml應該包含類似以下的內容:
development:
adapter: postgresql
encoding: unicode
database: myapp_development
pool: 5
username: myapp
password: password1
test:
adapter: postgresql
encoding: unicode
database: myapp_test
pool: 5
username: myapp
password: password1
然後您可以運行:
rake db:setup
這將創建開發和測試數據庫,將它們的所有者設置為指定的用戶,並在每個數據庫中創建“schema_migrations”表。此表用於記錄您對模式和數據的遷移。
執行Rails
現在你應該能啟動你的Rails應用程序:
rails server
如果你前往localhost:3000,你應該會看到一個Rails的首頁。不過這並沒有太多功能。要與我們的數據庫進行交互,讓我們創建一個腳手架:
rails g scaffold Post title:string body:text
rake db:migrate
現在前往localhost:3000/posts。從這裡,你可以創建新的帖子、編輯現有的帖子和刪除帖子。查看Rails入門指南以獲取更多入門操作。
你的Rails應用程序現在已經與一個Postgres數據庫對話了!
Source:
https://www.digitalocean.com/community/tutorials/how-to-set-up-ruby-on-rails-with-postgres