這是一個初學者的問題,但由於某種原因,我無法在別處找到答案。在控制器/視圖中使用嵌套信息
Customer has_many orders
Order has_many order_items
我在customer/show.html.erb中,我希望我的客戶操縱order_items。
許多訂單都有很多order_items,我想搜索所有這些order_items以找到那些read == false的。
#controller
@customer = Customer.find(params[:id])
@orders = @customer.orders
@order_items = @ orders.order_items不起作用。鑑於@orders中有多個項目,我如何收集屬於@orders的所有order_items?
===編輯===
我的整個數據庫的結構是表的複雜大組,我需要遍歷該樹爲這個特定視圖。
customer has_many orders
orders has_many order_items
order_items belongs_to category
例如,我如何找到屬於類別X的我的客戶的order_items的數量?
最後一個問題:爲什麼不@ orders.find_all_by_x(...)工作?
爲第1部分:當客戶的has_many:ORDER_ITEMS,:通過=>:訂單,我不能說OrderItem has_many:customers,:through =>:orders。我的訂單表格當然只有customer_id而不是order_item id。你可以通過單向has_many嗎? – sscirrus 2010-08-08 19:13:25
也許你需要HAS_ONE:通過 – Bohdan 2010-08-09 03:46:07
@sscirrus: 博赫丹是正確的,你可以使用HAS_ONE:客戶:通過=>:訂單 – Calavera 2010-08-09 10:29:03