2012-02-26 45 views
0

我有一個模型,它有很多另一個模型,但是這個模型只需要有10個或更少的id。帶有少數id的模型

假設它有,浴室,廚房,LivingRoom的參數和新的記錄可能永遠不需要改變。

製作這種不使用數據庫表的模型的最佳方法是什麼?

回答

0

即使行集合不會改變,爲了利用ActiveRecord關係,將它作爲數據庫中的表仍然很有用。一個不那麼人爲的例子就是擁有美國國家列表的數據庫表。這是不太可能改變的,並且可能只有幾列(州名和州縮寫)。但是,通過將這些數據存儲在數據庫中並使用ActiveRecord支持它們,您可以保留使用常規鋼軌語義在一個狀態中搜索所有用戶的方便功能。這就是說,另一種方法是簡單地創建一個類,將其粘貼在不從ActiveRecord繼承的模型目錄中,然後在應用程序加載時從數據庫填充一次,或者直接填充它手。

類似的問題昨天問了,你想要做什麼的答案之一提出了支持類似的東西機制:

How to create a static class that represents what is in the database?

1

這可能不是最好的做法,但解決同樣的問題,我只是規定在我的模型集合,像這樣:

ROOM_TYPES = [ "Bathroom", "Living Room", "Kitchen" ] 

然後在視圖:

<%= f.select(:room_type, Project::ROOM_TYPES, {:prompt => '...'}) %> 

(用您的實際型號替換Project)。

超級簡單,幾乎沒有設置。雖然我可以看到它很難維護,因爲沒有辦法在沒有訪問Rails代碼的情況下添加項目,但它確實可以快速完成工作。