Pergunta

Eu tenho um SQL seguinte consulta:

articles.name SELECT, articles.price, users.zipcode dos artigos INNER JOIN usuários ON users.id = articles.user_id ONDE vetores @@ to_tsquery ( 'crime') ORDER BY ASC articles.price

E eu gostaria de escrevê-lo dentro de um método find a partir de um dos artigos ActiveRecord classe chamada (Artigos belongs_to usuário). Basicamente eu quero procurar artigos e acessar o propertie CEP do usuário (user has_many artigos)

Eu escrevi a seguinte versão, mas não tenho certeza de que o seu trabalho, porque na resposta eu não receber qualquer informação sobre o CEP do usuário.

a = Article.find (: all,: conditions => "vetores @@ to_tsquery ( 'crime')" ,: junta =>: usuário,: ??order =>: preço,: incluir =>: user)

Mas eu não tenho nenhuma idéia de como acessar as informações de CEP. como posso aceder a esta informação? esta é a abordagem correta?

Saudações,

Victor

Foi útil?

Solução

Se você acoplada Articles e Users como você disse acima, este deve ser muito fácil:

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

Então, na sua opinião, você pode fazer:

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

Isso funciona porque Rails cria uma propriedade para o objeto pai (User) no modelo (Article) - você pode ler mais sobre o que na API docs . Isso funciona mesmo sem a chave "incluem" acima, mas deixando-o para fora significaria uma consulta de banco de dados em cada etapa do ciclo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top