2011-01-28 66 views
2

每當我不得不在軌中做一個HABTM我總是發現自己想知道是否可以從命令行生成所需的遷移。導軌是否允許您從命令行生成HABTM遷移?

我希望通過只是在做這樣的事情,以節省時間:

rails g migration tracks_podcasts tracks:references podcasts:references id:false 

上面的代碼不工作,也不做它的一些變化(有和沒有ID:假指令)

+1

可能重複[?我是否需要手動創建一個HABTM連接表遷移(http://stackoverflow.com/questions/564306/do-i-need-以手動創建一個遷移爲一個habtm連接表) – 2011-03-12 00:35:02

+0

似乎是一個更好的答案在這裏: http://stackoverflow.com/questions/6561330/rails-3-has-and -belongs-to-many-migration – Arcolye 2011-11-28 02:53:37

回答

-2

根據rails文檔,這應該可以工作,但是您希望將'references'替換爲'integer'。 '引用'不是有效的數據類型。並擺脫id:false entry。應該在生成後的遷移中指定引用和:id => false。您將基本上生成所有您想要的字段的基本遷移,然後打開遷移並修改它以符合您的規格。

Usage: 
    rails generate migration NAME [field:type field:type] [options] 

Options: 
    -o, --orm=NAME # Orm to be invoked 
        # Default: active_record 

Runtime options: 
    -f, [--force] # Overwrite files that already exist 
    -p, [--pretend] # Run but do not make any changes 
    -q, [--quiet] # Supress status output 
    -s, [--skip]  # Skip files that already exist 

Description: 
    Create rails files for migration generator. 
+4

引用是一個有效的值,t.references:foo轉換爲t.integer:foo_id。實際上,您可以創建自己的類型,如設計模型遷移和t.timestamps – Cluster 2011-09-30 07:14:39