我想知道Rails中给定模型的表标题对应的字段名称.
query.columns.map{|q| q.caption}
=> [“Tracker”,“Status”,“Priority”,“Subject”,“Assignee”,“Target version”,“Due date”,“% Done”]query.columns.map{|q| q.name}
=> [:tracker,:status,:priority,:subject,:assigned_to,:fixed_version,:due_date,:done_ratio]我的模型看起来像
Issue.columns.map{|q| q.name}
=> [“id”,“tracker_id”,“project_id”,“subject”,“description”,“due_date”,“category_id”,“status_id”,“assigned_to_id”,“priority_id”,“fixed_version_id”,“author_id”,“created_on”,“updated_on”,“start_date”,“done_ratio”,“estimated_hours”,“parent_id”]我想要从上面的信息获取对应于标题的字段名称(db字段名称).
模型中的样本关联
belongs_to :assigned_to,:class_name => 'Principal',:foreign_key => 'assigned_to_id'所以对于以上关联,我想知道外键.
为了assign_to我想要“assigned_to_id”
解决方法
反射散列包含这种信息:
Issue.reflections['assigned_to'].foreign_key
您还可以获取其他信息,例如类(.active_record)或关联类型(.macro).在rails 4.2之前,这个哈希的键是符号而不是字符串.