1

我有一个根据用户偏好显示输入的表单。我将这些值存储为 hstore 哈希,因为我提前不知道每个用户的表单输入究竟是什么。我遇到的问题是,即使用户有输入偏好并不意味着他们每次都必须为它输入一个值。其中,可能导致 :foo => ""。

所有文档示例都向您展示了如何查找您知道其键名的记录。就我而言,我不知道键名...我需要在哈希值 =>“”的哈希中找到所有键。

然后,我应该能够做类似文档显示的事情......对于每个空值

person.destroy_key(:data, :foo).destroy_key(:data, :bar).save

avals(hstore) 可能是我需要的用户...你如何使用带有导轨的 avals?

4

1 回答 1

1

由于 hstore 只是 rails 中的一个散列......您只需要在保存之前评估散列。

...在模型中

  before_save :remove_blanks

  private

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

将“hstore”替换为您的 hstore 列名

于 2013-06-25T17:38:46.280 回答