16

Rails の特定のモデルのテーブル キャプションに対応するフィールド名を知りたいです。

クエリ モデルを使用してキャプションを表示しています。

query.columns.map{|q| q.caption}
=> ["トラッカー"、"ステータス"、"優先度"、"件名"、"担当者"、"対象バージョン"、"期日"、"% 完了"]

列にはキャプションに対応する名前があります

query.columns.map{|q| q.name}
=> [:tracker, :status, :priority, :subject, :assigned_to, :fixed_version, :due_date, :done_ratio]

私のモデルは次のようになります

問題.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'

したがって、上記の関連付けについては、外部キーを知りたいです。

assigned_to私が欲しいから'assigned_to_id'

4

3 に答える 3

24

ハッシュには、次のreflections種類の情報が保持されます。

Issue.reflections['assigned_to'].foreign_key

クラス ( .active_record) や関連付けのタイプ( ) など、その他の情報を取得することもでき.macroます。Rails 4.2 より前では、このハッシュのキーは文字列ではなくシンボルです。

于 2012-09-07T11:41:45.497 に答える