作者polarpolar (破啦貝爾)
看板Ruby
標題Re: [問題] rails find 問題..
時間Sat Jan 20 16:41:10 2007
※ 引述《suomax (shadow)》之銘言:
: 請問 find 的 :order 選項是否可以與 model 的 relationship 合用?
: 比如
: class Product < ActiveRecord::Base
: belongs_to :catalog
: end
: 然後 catalog 有一個順序值 level
: 好像不能這樣 Product.find(:all, :order => :catalog.level )
: 有什麼方法達成這樣的使用方式嗎?
: 另外這樣好像會有大量的資料庫存取,還是有比較好的方法呢?@@
這是 Relation DB Model 物件化的痛啊......
最好的方法還是用 find_by_sql 然後 JOIN catalogs 吧
儘管這樣會使程式碼變很醜,程式碼可攜性也會降低,
但為了效能還是忍耐一下吧。
---
照理說 catalog_id 跟 catalogs.level 是無相關啦
用 catalog_id 來排序這方法並不正確
不過每個 catalog_id 卻保證不同的 level
如果真的效能低落很嚴重的話
看要不要在 Product 的 Model 裡面加一個 catalog_level field
這應該違反資料庫正規化,但是效能當前,
在 ActiveRecord 尚未漂亮地支援 DB Views 之前,
還是先這樣吧。
---
話說這個板已經演化成
Ruby 板 → RubyOnRails 板 → ActiveRecord 板? XD
--
╭───╮╭───╮┬ ╭───╮╭───╮2
│ ││ ││ │___│├───╯
├───╯╰───╯╰───│ ││ \
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.98.33
1F:推 godfat:嗚嗚,再不讀 RoR, 我就快沒文章可以回覆了 XD 01/20 19:26