2009-11-13 33 views
2

我是Rails初學者,並試圖瞭解導軌遷移如何工作。 我創建像一個支架:有關導軌遷移和同步視圖的問題

script/generate scaffold Item col1:string col2:text 
rake db:migrate 

我想用遷移添加其他COL4:

我創建了一個遷移如下:

class AddCol4 < ActiveRecord::Migration 
    def self.up 
     add_column  :items, :col4, :numeric 
     Item.reset_column_information 
    end 

    def self.down 
     remove_column :items, :col4 
    end 
end 

當我運行耙分貝:遷移新列被添加。但是這個視圖不同步。 我應該手動添加新的列到視圖?有沒有辦法使用新的表格列自動重新生成模型/視圖?

對不起,這是一個基本的問題,但根據我對其他框架的經驗,它應該是自動的。 有關遷移的導軌指南並未明確說明在執行遷移後同步應該如何工作。

回答

2

不幸的是,您需要手動修改視圖。該視圖是通過運行script/generate scaffold命令創建的。遷移只會更改數據庫。從技術上講,您可以重新運行scaffold命令並讓它重新生成視圖。它會問你是否要覆蓋前一個文件,但是,如果你走這條路線,你仍然需要指定所有你想要的列。你不能簡單地在這裏和那裏添加一些。

如果你在開發早期,那麼你可以採取這條路線。只需運行

script/destroy scaffold Item 

,然後重新運行

script generate scaffold Item col1:string col2 string col3:numeric 

有可用的,例如ActiveScaffold如果要創建的東西,只有少數用戶會看到一些動態腳手架擴展,但我會建議做自己的HTML因爲它總是會以你想要的方式出現。

我似乎無法找到任何其他動態腳手架插件。曾經有不少...