1

モデル (この場合は Participant モデル) のメソッドを作成して、関連付けの特定のセットを調べ、関連付けが存在するかどうかを単に記録したいと考えています。ここに私が持っているものがあります:

  def post_screener_associations?
    ParticipantAuthorizationForm.where(:participant_id => self.id).count > 0
    ParticipantConsent.where(:participant_id => self.id).count > 0
    # and so on exactly like the format above about 8 more times!
  end

このクエリを作成するためのより良い方法があることは知っていますが、同僚に迷惑をかけたくありません。ありがとう。

4

2 に答える 2

0
  def post_screener_associations?
    self.class.reflect_on_all_associations.all? { |a| send(a.name).present? }
  end

これは、すべてのアソシエーションが存在するかどうかを確認する必要があり、存在するすべてのメソッドが true を返す場合、別の方法では false になります

于 2013-04-03T18:08:18.967 に答える
0

リフレクションを使用したくない場合の別のオプション。元の投稿に似ており、参加者モデルにあるアクティブなレコード メソッドを使用して簡略化しています。

def post_screeener_associations?
  participant_authorization_form.present? ||
  participant_consent.present? ||
  # etc.
end
于 2013-04-03T19:27:14.930 に答える