2011-01-07 92 views
8

我對Ruby on Rails很新,我想知道是否有方法編輯模型的數據庫模式。從命令行編輯導軌模型

例如,我有訂購模式在我的應用 - 我創建的方式是通過使用rails generate scaffold Subscriber email:string

但現在,我想在用戶模型的名稱爲好。有沒有簡單的方法來做到這一點?我在當前的控制器和視圖中放了很多代碼,所以我不一定要銷燬腳手架,但我想編輯模型。

由於提前,

hwrd

附:我正在使用Ruby on Rails 3

+1

閱讀HTTP://guides.rubyonrails .org/active_record_migrations.html應該非常有幫助。 – Hong 2016-03-25 01:40:59

回答

12

ActiveRecord模型檢查它所表示的表。你並不需要改變你的模型來添加一個新的字段(除非你想添加驗證等)。

你想要做的是使一個新的遷移,然後遷移數據庫了:

rails g migration AddNameToSubscribers name:string 
rake db:migrate 

然後你就可以開始引用您的控制器和視圖名稱字段。

(該發電機命令似乎有點不可思議,但鐵軌發電機識別這種格式,並會產生相應的add_columnremove_column代碼見Rails migration guide進一步閱讀。)

2

如果您的意思是更改模型的數據庫模式,則需要使用遷移。

你會不喜歡

add_column :city, :string 
remove_column :boo 

http://guides.rubyonrails.org/migrations.html

的事情,如果你只意味着找到模型和更新每個實例裏面的數據,一起去@ apneadiving的答案。

+0

感謝您的及時回覆。我的意思是改變數據庫模式 - 對不起,我沒有說清楚。在這個命令之後,我的模式會被更新爲好嗎?另外,作爲一個附註 - remove_column是否還會打擊該模型列中的所有/所有數據? – hwrdprkns 2011-01-07 19:31:32

+0

@ hwrdprkns,當一個列從表中刪除時,所有的數據都會丟失。而且@Jesse Wolgamott所說的與@Josh Lindsey所說的基本相同...... – Zabba 2011-01-07 19:37:05