невозможно определить количество строк Ruby-On-Rails - PullRequest
3 голосов
/ 21 марта 2011

я пытаюсь собрать корзину в ruby ​​на рельсах, я должен показать результат примерно так: у вас есть 3 элемента в вашей корзине (3 - это количество элементов в моей корзине), и я пытаюсь найти количество строкв таблице line_items, где cart_id равен 5.

@line_items.find(:all, :condition => { :cart_id => "5"}).count

, если кто-нибудь знает, как мне написать это, пожалуйста, дайте мне знать .. Заранее спасибо

Ответы [ 2 ]

7 голосов
/ 21 марта 2011

Вы можете сделать это медленным способом:

YourModelClass.find(:all, :conditions => { :card_id => 5 }).count

или быстрым способом:

YourModelClass.count(:conditions => { :card_id => 5 })

Быстрый способ просто делает COUNT(*) внутри базы данных, медленный путьизвлекает весь набор результатов из базы данных, превращает его в объекты и затем подсчитывает их.

Существует также современный способ Rails3 +:

YourModelClass.where(:card_id => 5).count

, который выполняет select count(*) from t where card_id = 5 внутрибаза данных. Не используйте это, хотя:

YourModelClass.count(:card_id => 5)

Это сделает select count(card_id = 5) from t, и это совсем не то, что вы хотите.

1 голос
/ 21 марта 2011

это должно быть что-то в одиночку

LineItem.count(:conditions => {:cart_id => 5})

так как я не знаю, как называется модель и ассоциация ... надеюсь, это поможет =)

...