2011-11-06 47 views
0

例子:如何查找表列名已存在或不在ruby中?

我有舊錶列格式(ID,姓名,市),但就像(ID,姓名,城市,銷)現在我們已經修改後的表列

我要檢查是否「針」出現在表列或不Ruby on Rails的

+0

可能重複:// stackoverflow.com/questions/1710004/how-to-check-if-a-model-has-a-certain-column-attribute) –

回答

1

Rails的2.3.x版本:

Model.columns.map(&:name).include?('pin') 

的Rails 3.x中:

Model.column_exists?(:pin) 
[如何檢查如果模型具有一定的列/屬性?(HTTP的
+1

'column_exists?'不是從'Model'中可用的方法。 –

+0

Model.connection.column_exists?(table_name,column_name)[docs](http://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/column_exists%3F) – Alex

+1

如果你想使用column_exists你必須這樣做。 ActiveRecord :: Base.connection.column_exists?(:table_name,:pin) – Brandt

0

你可以做到這一點從表中的符號得到所有的列名的數組:

YourModel.arel_table.columns.map(&:name) 

檢查pin列存在:

YourModel.arel_table.columns.map(&:name).include?(:pin) 
相關問題