コードを抽象化し、オブジェクトxの列名をループしていると仮定して、列が関連しているかどうかを検出する最良の方法は何ですか?Rails/ActiveRecord:列が関連しているかどうかを検出
私はこれを行うことができます知っているが、より良い方法がある場合、私は疑問に思って:
@user = User.first
@user.attributes.keys.each do |column|
if column[-3..-1] == "_id" && @user.respond_to?(column[0..-4].to_sym)
puts "#{column} is an association/relation."
else
puts "#{column} is not an assocation/relation."
end
end
end
どれビルトインRailsのメソッドやヘルパーの関連付けを検出するには?上記のコードは、あまりにも偽証でもありません。ありがとう!
associations = class_goes_here.reflect_on_all_associations
そしてそれらが_id
フィールドを持つことになりますから、ちょうどbelongs_to
ものを見つけるために:これを行うには
のRailsのとおり、マクロすぐでフィルタリングすることができます: 'アソシエーション=のUser.reflect_on_all_associations(:belongs_toの) 'コードの2行目を保存します。 – ToniTornado