1

我有以下 SQL 查询:

选择articles.name、articles.price、users.zipcode FROM article INNER JOIN users ON users.id =articles.user_id WHERE vectors @@ to_tsquery('crime') ORDER BYarticles.price ASC

我想把它写在一个名为 Articles 的 ActiveRecord 类的 find 方法中(Articles belongs_to 用户)。基本上我想搜索文章并从用户访问邮政编码属性(用户 has_many 文章)

我写了以下版本,但我不确定它是否有效,因为在响应中我没有收到有关用户邮政编码的任何信息。

a = Article.find(:all,:conditions=>"vectors @@ to_tsquery('crime')",:joins= >:user,:order=>:price,:include=>:user)

但我不知道如何访问邮政编码信息。我怎样才能访问这些信息?这是正确的做法吗?

问候,

胜利者

4

1 回答 1

2

如果您已经耦合Articles并且Users像上面所说的那样,这应该很容易:

@articles = Article.find(:all, :conditions => "…", :include => :user)

然后,在您看来,您可以执行以下操作:

<ul>
<% for each article in @articles do %>
  <li><%= article.user.zipcode %></li>
</ul>
<% end %>

User这是因为 Rails 为模型 () 中的父对象 () 创建了一个属性Article- 您可以在 API 文档中阅读更多相关信息。这甚至可以在没有上面的“include”键的情况下工作,但是将其排除在外意味着循环的每一步都需要进行数据库查询。

于 2008-11-27T08:17:45.647 回答