Answers:
这将列出表中的column_names
Model.column_names
e.g. User.column_names
Model.columns
通过ActiveRecord提供表的所有信息。对我而言至关重要的是,这是对我的主键真正在数据库级别上获得信任的唯一且最简单的方法。
这将获取列,而不仅仅是列名,并使用ActiveRecord :: Base :: Connection,因此不需要模型。方便快速输出数据库的结构。
ActiveRecord::Base.connection.tables.each do |table_name|
puts table_name
ActiveRecord::Base.connection.columns(table_name).each do |c|
puts "- #{c.name}: #{c.type} #{c.limit}"
end
end
样本输出:http : //screencast.com/t/EsNlvJEqM
primary
正确设置属性(所有列都有primary=nil
)。使用Model.columns
srt32建议的方法正确设置。
使用rails 3,您只需键入模型名称:
> User
gives:
User(id: integer, name: string, email: string, etc...)
在导轨4中,您需要首先建立连接:
irb(main):001:0> User
=> User (call 'User.connection' to establish a connection)
irb(main):002:0> User.connection; nil #call nil to stop repl spitting out the connection object (long)
=> nil
irb(main):003:0> User
User(id: integer, name: string, email: string, etc...)
补充这些有用的信息,例如使用rails console o rails dbconsole:
学生是我的模型,使用rails控制台:
$ rails console
> Student.column_names
=> ["id", "name", "surname", "created_at", "updated_at"]
> Student
=> Student(id: integer, name: string, surname: string, created_at: datetime, updated_at: datetime)
通过Rails使用SQLite的其他选项:
$ rails dbconsole
sqlite> .help
sqlite> .table
ar_internal_metadata relatives schools
relationships schema_migrations students
sqlite> .schema students
CREATE TABLE "students" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "surname" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL);
最后了解更多信息。
sqlite> .help
希望这可以帮助!
Model.columns
来获取有关列的更多信息,包括数据库配置数据。