【问题标题】:How to get an array with column names of a table如何获取包含表列名的数组
【发布时间】:2011-03-29 14:48:38
【问题描述】:

我需要一个包含表列名的数组

有什么想法可以用 rails 3.0.0rc 做到这一点吗?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 activerecord orm


    【解决方案1】:

    假设你有一个 Post 模型:

    Post.column_names
    # or
    Post.columns.map { |column| column.name }
    

    它将返回一个包含表“posts”列名的数组。

    【讨论】:

    • ...或者只使用Post.column_names
    【解决方案2】:

    ActiveRecord::Base#column_names

    创建模型:

    $ rails g model Post title:string body:string
    

    验证app/models/post.rb

    class Post < ActiveRecord::Base
    end
    

    从您的终端:

    $ rake db:migrate
    $ rails c
    > Post.column_names
    

    应该产生:

    => ["id", "title", "body", "created_at", "updated_at"] 
    

    感谢@dombesz 的comment Andrea Pavoni 的回答

    【讨论】:

      【解决方案3】:

      对于 ActiveRecord:

      Model.column_names
      

      对于 Mongoid:

      Model.attribute_names
      

      输出:

      => ["id", "title", "body", "created_at", "updated_at"] 
      

      注意:对于 Mongoid,它将是 _id 而不是 id

      【讨论】:

      • 这不是最好的答案吗?切入正题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多