2013-12-07 40 views
0

我最近添加了新的列到我的數據庫(sqlite的)媒體和它表明列插入,但新列將不會更新Medium.newRails的不更新新列

我原來的數據庫:

class CreateMedia < ActiveRecord::Migration 
     def change 
     create_table :media do |t| 
      t.string :name 
      t.string :location 

      t.timestamps 
      end 
     end 
    end 

這些列上Media.new

 class AddMetaToMedia < ActiveRecord::Migration 
      def change 
      add_column :media, :ext, :string 
      add_column :media, :l_mod, :string 
      add_column :media, :d_create, :string 
      end 
     end 

更新和我打電話

Medium.new(name: f, location: str, ext: ex) 

內線將不會更新到EX = File.extname(F),我知道有通過報表打印/控制檯的值。我打電話給Medium.new錯了嗎?爲什麼它更新名稱和位置,但不是新列?

編輯:這裏是我的模型,我已經試過與不attr_accessible/attr_accesor

class Medium < ActiveRecord::Base 
    attr_accessor :ext, :d_create, :l_mod 

    end 
+0

有重新啓動服務器添加到白名單新PARAMS /控制檯運行遷移後?併發布你的Rails版本和型號'Medium'(這是可能的,你必須在3 Rails的attr_accessible問題) – gotva

+0

如果該字段不是可在分貝水平,你應該得到一個異常 – mihai

+0

我使用Rails 4.我有運行db:migrate後重新啓動服務器。我將用我的模型編輯 – Vincent

回答

1

attr_accessor :ext, :d_create, :l_mod從模型中刪除此行,然後再試一次。

現在,你必須在DB這些屬性使Rails會做這個工作自動

+0

這是解決方案!非常感謝! – Vincent

2

主要是爲那些誰找到這以後......可能還需要在感興趣控制器