将where子句与外键一起使用

时间:2012-07-23 18:02:39

标签: ruby-on-rails-3 activerecord

在我的应用程序中,我有一个搜索字段来查找足球访问。我希望它能够通过访问俱乐部进行搜索。在我的模型访问belongs_to俱乐部,所以访问有一个字段“club_id”。因此,当我使用ID搜索时,它会找到俱乐部,但我希望能够通过俱乐部名称找到它。 “club_id”应该替换为“visit.club.name”之类的内容,但我怎样才能做到这一点?这是我目前的查询:

  # Find visits
  def find_anything(find_phrase)
    unless find_phrase.blank?
      @visits = Visit.where('address LIKE ? OR ground LIKE ? OR club_id LIKE ?',
                "%#{find_phrase}%",
                "%#{find_phrase}%",
                "%#{find_phrase}%")
    end
  end

2 个答案:

答案 0 :(得分:0)

应该做的诀窍:

Visit.where(club_id: Club.where(name: "ClubName"))

答案 1 :(得分:0)

    Club.joins(:visits).where('visits.club_id' => club_id).first.name

*这假设俱乐部模式has_many:访问

    Club.find(Visit.find_by_club_id(club_id)).name