1

これがschema.rbにあるとしましょう:

create_table "products" do |t|
 t.string   "name",                                           
 t.text     "description"
end

商品属性のデータベースタイプを確認する方法が必要です。

何かのようなもの:Product.column_type(:name) => "string"

これは可能ですか?

4

1 に答える 1

6
Product.columns_hash['name'].type # => :string

記号の代わりに文字列を使用していることに注意してください。

代替案について:sql_type

論理RailsタイプをDB固有のデータタイプにマップします。汎用的なものとしては、使用をお勧めしません。本番DBエンジンはsql_type、開発DBのまったく同じ列の値と同じではない値を返します(ただし、両方とも同じ移行ファイルで作成されています)。 )。ブールフィールドの例:

# SQLite mapping:
:boolean => { :name => "boolean" }
# MySQL mapping:
:boolean => { :name => "tinyint", :limit => 1 }

typeどちらの場合も使用:booleanすると、移行で指定したように、が得られます。

于 2012-06-14T18:35:26.970 に答える