2013-06-24 35 views
1

我有一個表單根據用戶的喜好顯示輸入。我將這些值存儲爲hstore hash,因爲我不會提前知道每個用戶的表單輸入是什麼。我遇到的問題是,即使用戶有輸入偏好,並不意味着他們每次都必須輸入一個值。其中,可能導致:foo =>「」。Rails postgres hstore - 如何從散列省略一個零輸入值

所有文檔的例子告訴你如何查找記錄你知道的鍵名。在我的情況下,我不知道密鑰的名稱...我需要找到所有密鑰的哈希值=>「」。

然後,我應該可以做類似的文檔顯示...每個空值

person.destroy_key(:數據:富).destroy_key(:數據:巴).save

avals(hstore)很可能是我需要的用戶...你如何使用avals with rails?

回答

1

由於hstore只是在軌哈希...你只需要在保存前評估的哈希值。

...模型

before_save :remove_blanks 

    private 

    def remove_blanks 
    self.hstore = self.hstore.reject{ |k,v| v.blank? } 
    end 

取代 'hstore' 你hstore列名