Существующие во вложенной коллекции не могут найти без ID? - PullRequest
0 голосов
/ 09 июля 2010

Эй, ребята, еще одна проблема с рельсами,

В настоящее время есть коллекция, которая представляет собой позиции для системы выставления счетов.Я хочу увеличить количество позиций, если добавлю элемент, который уже существует.На данный момент я использую существует?запрос к коллекции, но, похоже, он возвращается независимо от ключа.

Используемый мной внешний ключ - item_id, поэтому я пытаюсь сделать invoice_items.exists?(:item_id => item.id)

Это не возвращалосьпоэтому я изменил его на invoice_items.find(:conditions => ["item_id == ?", item.id) и получил возврат, который не могу найти без invoiceItem ID.

Идеи?

Ответы [ 2 ]

1 голос
/ 09 июля 2010
conditions => ["item_id == ?", item.id

должно быть

conditions => ["item_id = ?", item.id]

Итак, ваш запрос выглядит следующим образом

invoice_items.find(:all).conditions => ["item_id = ?", item.id]
0 голосов
/ 09 июля 2010

вам просто нужно сделать либо

invoice_items.all(:conditions => ["item_id == ?", item.id])

OR

invoice_items.first(:conditions => ["item_id == ?", item.id])

и вы можете использовать синтаксис

invoice_items.all(:conditions => {:item_id => item.id})

если вы собираетесь использовать команду model.find, первый параметр должен быть :all, :first, :last или первичный ключ, который вы ищете. именно поэтому я обычно предпочитаю использовать Model.find только если я ищу идентификатор, в противном случае я использую Model.first, Model.last, Model.all. Таким образом, вы знаете, что вы собираетесь получить.

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