检查rails数组中是否存在特定列

时间:2010-11-10 09:37:05

标签: ruby-on-rails arrays

我想知道是否有任何数组方法来检查模型中特定列的存在。我将两个表的查询结果合并到一个数组中。我需要检查那些表名列的出口名称是否为该数组。

4 个答案:

答案 0 :(得分:3)

Model.columns.map(&:name).include?("id")
# => true
Model.columns.map(&:name).include?("not_available_column")
# => false

答案 1 :(得分:1)

另一种可能更简洁的做法是:Foo.column_names.include?(“bar”)

答案 2 :(得分:0)

这是您可以检查模型实例是否属于特定类的方法,例如obj.is_a?(Person)

要查看特定模型的哪些列,请在课程级别执行:obj.class.columns.collect { |c| c.name }

答案 3 :(得分:0)

您也可以使用它:

ActiveRecord::Base.connection.column_exists?(:users, :id)

Api Dock - column_exists?