У меня есть модель пользователя, в которой много телефонных номеров. Номер телефона принадлежит к типу phone_type, который создается в базе данных (например, в офисе, на дому, на мобильном телефоне).Rails: как заказать массив по соответствующей характеристике модели?
phone_type.rb:
class PhoneType < ActiveRecord::Base
# id :integer not null, primary key
# name :string(255)
# position :integer default(1)
default_scope :order => 'position ASC'
default_scope where(:active => true)
Я пытался написать запрос ActiveRecord, который отображает телефонные номера для пользователя, но в порядке, который определяется порядком, установленным для phone_types по PHONE_TYPE. должность.
Мой старый код:
<% @phones.each do |p| %>
<%= p.phone_type.name %> <%= p.value %> <br/>
<% end %>
Но просто отображает номера телефонов по заказу таблицы идентификаторов. Каков правильный способ написания более сложного запроса?
Просто интересно, так как я не 100% ясно - почему вы получаете Phone.all вместо только одного пользователя, чьи телефоны показываются? Разве вы не хотели бы что-то вроде '@ some_user.phones'? – RudyOnRails