0

TourHdrとTourDetailの2つのモデルがあります。TourDetailはtour_hdrに属し、TourHdrhas_manytour_detailsです。TourHdrには、statusという属性もあります。

関連するTourHdrレコードのステータスフィールドがLiveであるすべてのTourDetailsを取得するメソッドをTourDetailで定義したいと思います。

私は次のことを試しました:

def self.status(status)
  where(:tour_hdr.status == status)
end

ここでのステ​​ータスは、「ライブ」または「キャンセル」になります。

Railsは、ClassTourDetailのtour_hdrメソッドがないと文句を言います。ここでの正しい構文は何ですか?

私がそうする場合、コンソールで:

td = TourDetail.first
puts td.tour_hdr.status

正常に動作します。これは、tdがクラスではなくTourDetailの「インスタンス」であるためだと思います。

4

1 に答える 1

1
joins(:tour_hdr).where(:tour_hdrs => {:status => status})
于 2012-04-04T17:15:20.153 に答える