Найти записи без связи - PullRequest
       0

Найти записи без связи

0 голосов
/ 24 декабря 2011
shipment has_one :invoice
invoice belongs_to :shipment

Для каждой отправки может быть создан один счет.Я хочу найти все грузы, у которых еще нет счета.Желательно без прямого SQL, я хотел бы использовать метод поиска рельсов.

1 Ответ

3 голосов
/ 24 декабря 2011

Считаете ли вы немного изменить свою схему?

class Shipment
  belongs_to :invoice
end

class Invoice
  has_one :shipment
end

Тогда вы сможете сделать это:

Shipment.where(:invoice_id => nil)

Объяснение:

Обаhas_one и belongs_to выражают отношения один-к-одному.И если это belongs_to, то модель получает возможность сохранить внешний ключ для другой записи в ассоциации.Таким образом, в этом случае таблица shipments будет содержать invoice_id, которую вы сможете использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...