2011-08-03 60 views
0

您將在Rails應用程序中存儲用戶首選項的位置?在Ruby中存儲用戶首選項

我應該把它在用戶模式或僅使用序列化

+0

您可以將它們存儲在用戶模型中,使其可以編輯 – naren

+0

有什麼區別?你必須堅持用戶模型,我認爲,最好的做法是序列化它。 (除非這個信息太大) – eveevans

回答

1

這是真的取決於你的應用程序中。它有多大,未來會增長,有多少設置,設置的數量會增加等等。

如果您只有一些設置(我的個人限制爲5),則可以保存它們在您的User模型中。優點:易於實施。缺點:新設置需要數據庫中的更改,即每次添加新設置或更改現有設置時的遷移。

如果您有更多的設置,並且他們要更改或增加數量,您可能更容易將時間節省在自己的模型中。最好的方法是使用某種現有的Key-Value存儲或僞造自己的存儲。專業版:您可以輕鬆添加新設置,或更改現有設置。缺點:難以實施,可能會導致一個小應用程序的過度使用。

+0

謝謝你的幫助! –

1

您也可以將所有設置放在一個屬性中,並將該屬性序列化到模型中。它基本上包含您想要的任意數量的用戶設置的散列。隨時添加/刪除它們很容易。

例如:

用戶模型

serialize :settings 

get_settings(type => :filter) 
end 

set_settings(type => :filter, data => {}) 
end 

用戶表

text settings 

用戶行

:filter: 
    :statuses: 
     - "status 1" 
     - "status 2" 

:pagination 
    :per_page: 20 
    :last_viewed_page: 10 

您可以使用它像這樣:

set_settings(:pagination, {:per_page => 10, :last_viewed_page => 2}) 
user_pagination = get_settings(:pagination, {:pagination} 
user_pagination[:per_page] 
user_pagination[:last_viewed_page]