簡體   English   中英

在軌道上的紅寶石中改變模型

[英]changes to model in ruby on rails

所有,

我需要澄清如何在軌道上的ruby中跟蹤模型更改。 我開始創建一個模型,說兩個字段,名稱和電子郵件。 這就是我所做的

  1. 通過運行創建模型

“rails generate model user first_name:string last_name:string”

這創建了一個模型文件

  1. 然后,我在用戶創建的文件中添加了一些驗證
  2. 使用注釋gem來注釋類
  3. 使用“bundle exec rake db:migrate”將我的模型移動到創建表的數據庫

我現在想為模型添加更多字段。 我需要遵循哪些步驟?

  1. 我是否向數據庫中添加了列並運行了一些命令,以便模型(類)與db同步?

  2. 我是否使用新字段刪除並重新創建整個模型?

什么是推薦的方法Venu

您希望使用遷移來更新現有表,您可以從命令行執行整個過程

假設你已經完成了

rails generate model user first_name:string last_name:string

以前你會添加這樣的字段;

rails generate migration AddFieldsToModel new_field:string another_field:string....

Rails在'AddFieldsToModel'上做了魔術,並根據你的值計算出表名。

創建遷移后,您可以在db / migrations中查看它,然后如果您對它感到滿意就運行

rake db:migrate

這將更新您的數據庫以向其添加新字段。 您不需要對實際的model.rb文件執行任何操作 - 但您需要重新運行注釋任務以將其重新注釋到model.rb文件。

我不確定你使用的是什么版本的rails ..但是int rails 3.x它可以完成

rails generate migration add_fields_user

這將在db / migrate / [timestamp] /add_fields_user.rb中創建一個文件

現在你可以在文件中寫入並運行rake db:migrate

add_column :users , :city, :string

您要做的是通過鍵入來運行遷移。 rails生成遷移description_of_migration。 這將創建一個空遷移,您可以定義要添加到模型的內容。 在你的情況下,它可能是這樣的:

class DescriptionOfMigration < ActiveRecord::Migration

self.up 
 add_column :users, :email, :string  
end

self.down
 remove_column :users, :email
end

end

這使得您可以在模型上雙向遷移。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM