Re: [問題] rails find 問題..
※ 引述《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
推
01/20 19:26, , 1F
01/20 19:26, 1F
討論串 (同標題文章)
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章