sql-запросы в ruby on rails

#ruby-on-rails #ruby #rails-activerecord

#ruby-on-rails #ruby #rails-activerecord

Вопрос:

У меня есть следующий запрос, который выбирает *, где отображение в таблице ZIP-архивов равно столбцу в таблице users.

Это работает нормально, но как мне выбрать ДРУГОЙ столбец из таблицы Zips, чтобы распечатать его?

Zip.where(:display => @user.location)

Итак, например, в таблице users есть location col, а в таблице zips есть столбец display and zipcode . Я нахожу правильную строку, сопоставляя location от пользователей с display в zip-архивах, но мне нужно извлечь почтовые индексы из соответствующей записи в zip-архивах…

Ответ №1:

Предполагая, что в вашей Zip таблице есть zipcode поле:

 @zips = Zip.where(:display => @user.location)
@zips.each do |zip|
  puts zip.zipcode
end
  

Или поместить их в массив:

 zipcodes = @zips.collect{ |zip| zip.zipcode }
  

В представлении:

 <h3>Zip Codes</h3>
<ul>
  <% @zips.each do |zip| %>
  <li><%= zip.zipcode %></li>
  <% end %>
</ul>