如何根据Rails belongs_to记录中的信息获取记录?

时间:2012-04-04 16:21:08

标签: ruby-on-rails-3 belongs-to

我有2款TourHdr和TourDetail。 TourDetail属于tour_hdr和TourHdr has_many tour_details。 TourHdr还有一个名为status的属性。

我想在TourDetail中定义一个方法,它将为我提供所有TourDetails,其中相关的TourHdr记录中的状态字段=实时。

我尝试了以下内容:

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

此处的状态可以是“实时”或“已取消”。

Rails抱怨类TourDetail没有tour_hdr方法。这里的语法是什么?

如果我在控制台中:

td = TourDetail.first
puts td.tour_hdr.status

工作正常。我猜这是因为td是TourDetail的“实例”,而不是类。

1 个答案:

答案 0 :(得分:1)

joins(:tour_hdr).where(:tour_hdrs => {:status => status})