Rails查询模型的委托字段

时间:2014-04-23 06:36:49

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 ruby-on-rails-3.1 rails-activerecord

你好我有两个带有has_one关联的模型。我需要使用委托字段进行搜索。

**Model 1:**
class Reservation < ActiveRecord::Base
    belongs_to :content
    delegate :type, :title, :to => :content
end

**Model 2:**
class Content < ActiveRecord::Base
    has_one :reservation
end

以下查询正常,因为委托:

reservations = Reservation.last
reservations.title
 ~   Content Load (0.6ms)  SELECT `contents`.* FROM `contents` WHERE `contents`.`id` = 95 LIMIT 1
 => "Birthday Party" 

现在我需要使用委托字段进行查询:

reservations = Reservation.where("title = ?","some_title")

它返回错误:

Unknown column 'title' in 'where clause'

我该如何解决这个问题?那是在做正确的方式吗?感谢您阅读我的问题。

1 个答案:

答案 0 :(得分:1)

使用joinswhere可以解决问题。但不确定这是否是你想要的。

reservations = Reservation.joins(:content).where("contents.title = ?","some_title")