我試圖給我的web應用程序的管理員添加一些新的字段到模型的能力。該模型被稱爲Artwork,我想爲instante在運行時添加一個test_column列。我只是嘮叨,所以我添加了一個簡單的鏈接來做到這一點,它當然是參數化的。在rails中運行時向列表添加列(不包括附加表格)
我設法通過遷移來做到這一點:
def test_migration_create
Artwork.add_column :test_column, :integer
flash[:notice] = "Added Column test_column to artworks"
redirect_to :action => 'index'
end
def test_migration_delete
Artwork.remove_column :test_column
flash[:notice] = "Removed column test_column from artworks"
redirect_to :action => 'index'
end
它的工作原理,列被添加/從DATABSE沒有問題,除去/。我現在正在使用active_scaffold,所以我在表單中得到了test_column字段而不添加任何內容。但是,當我提交創建或更新時,test_column不會更新並保持空白。檢查參數,我可以看到:
Parameters: {"commit"=>"Update", "authenticity_token"=>"37Bo5pT2jeoXtyY1HgkEdIhglhz8iQL0i3XAx7vu9H4=", "id"=>"62", "record"=>{"number"=>"test_artwork", "author"=>"", "title"=>"Opera di Test", "test_column"=>"TEEST", "year"=>"", "description"=>""}}
test_column參數正確傳遞。那爲什麼主動記錄一直忽略它呢?我試圖重啓服務器也沒有成功。
我正在使用ruby 1.8.7,rails 2.3.5和mongrel與sqlite3數據庫。
感謝
關閉時,我將該列視爲字符串而不是整數。 Artwork.add_column:test_column,:string 訣竅。 留下留言,以備將來參考。 – 2010-05-01 12:27:46