1

Rails 3.2を使用して、列が他のモデルへの参照列であるかどうかを調べる方法はありますか?

名前の「_id」文字列検索に頼りたくありません。

ありがとう。

アップデート:

すべての列を反復する必要があり、次のような参照列で特別な処理を行いました。

result = Hash.new
self.attribute_names.each do |name|
  if self[name]
    result[name] = self[name]

    if name is reference column
       insert xxx_description (from the other model) in hash.
    end
  end
end

このハッシュをjsonとしてクライアントに返します。

{名前: 'ジョセフ', セクターID: 2, セクター名: 'バックエンド'...}

ここで、sector_name は person.sector.name です...

ありがとう。

4

2 に答える 2

3

協会の名前がわからない場合の代替方法:

Post.reflect_on_all_associations(:belongs_to).map &:foreign_key 
# => ['author_id','category_id']
于 2013-03-08T12:31:54.950 に答える
0

http://api.rubyonrails.org/classes/ActiveRecord/Reflection/ClassMethods.htmlを参照してください

Post.reflections[:comments].primary_key_name # => "message_id"

リフレクションを介してアクティブレコードの関連付けを取得する方法

于 2013-03-08T12:23:35.520 に答える