1
比方說,我有這樣的schema.rb:獲取數據庫類型屬性
create_table "products" do |t|
t.string "name",
t.text "description"
end
我想辦法,找出產品屬性的數據庫類型是什麼。
喜歡的東西:Product.column_type(:name) => "string"
這可能嗎?
比方說,我有這樣的schema.rb:獲取數據庫類型屬性
create_table "products" do |t|
t.string "name",
t.text "description"
end
我想辦法,找出產品屬性的數據庫類型是什麼。
喜歡的東西:Product.column_type(:name) => "string"
這可能嗎?
Product.columns_hash['name'].type # => :string
請注意使用字符串而不是符號。
關於替代:sql_type
它映射邏輯Rails的類型,以特定的DB-數據類型。對於通用事物我不會推薦使用它:您的生產數據庫引擎將返回與開發數據庫中同一列的sql_type
不同的值(儘管它們都是用相同的遷移文件)。例如布爾領域:
# SQLite mapping:
:boolean => { :name => "boolean" }
# MySQL mapping:
:boolean => { :name => "tinyint", :limit => 1 }
使用在這兩種情況下type
給你:boolean
,正如您在遷移指定。
完美!你知道類型和sql_type屬性之間的區別嗎?我無法在文檔中找到它:http://rubydoc.info/docs/rails/3.0.0/ActiveRecord/ConnectionAdapters/Column – spike
@spike更新了我的答案。 – jdoe
太棒了,雖然巨大的文字有點嚇人:)。公認 – spike