0

我有一个返回哈希的方法:

def image_hash
  images = {
    small: 'http://www.example.com/image1.png',
    medium: 'http://www.example.com/image2.png'
  }
end

我需要将它作为轮胎中 ActiveModel 映射的一部分进行索引,但我无法让它与方法中的as:选项一起使用indexes

问题是我需要将它重新定义为图像(这是另一种模型方法),所以我正在尝试这样:

indexes :image_hash, as: :images do
  indexes :small, type: 'string', include_in_all: false
end

但是没有正确创建索引。

我知道methods该方法的选项to_indexed_json

def to_indexed_json
  to_json( methods: [:image_hash] )
end

哪个有效。但是如果不从头开始重新创建整个 JSON 对象,我看不到如何在该块中重新定义它。看起来更倾向于将mapping块完全用于索引 JSON。

任何帮助,将不胜感激。

4

1 回答 1

0

我不太确定你想在那里做什么,但如果这是你想要做的,你不能动态地从哈希中取出一个项目

您可能想使用 type 对象,这样您就可以直接存储整个 has

indexes :image_hash, type: object, include_in_all: false

应该足够了

于 2013-05-20T21:01:34.627 回答