0

我在 Rails 应用程序中有一个字段定义为文本(在数据库端)。现在,一些较旧的数据作为字符串直接写入其中。我想开始向它添加哈希。

当我检索数据时,如果它是一个哈希,我想以不同的方式呈现它。

这是我尝试过的,但它不起作用,因为acts_like?方法总是返回 false:

if suggestion.acts_like? Hash
  suggestion.each {|attr, value| puts(helper.t attr+": "+value.to_s)}
else
  puts suggestion
end

我做错了什么?是acts_like吗?甚至在这里使用正确的东西?


我试图结束这个问题,因为我找到了答案,但它似乎没有正确保存。

这是我最终使用的:

if suggestion.is_a? Hash
....
else
...
end

我还是不知道为什么acts_like?行不通,但 is_a? 确实有效!Oldergod 的 kind_of 建议?也有效!

4

1 回答 1

1

你可以

if suggestion.kind_of?(Hash)
  # ...
end

或者

if Hash === suggestion
  # ...
end
于 2012-08-09T00:46:54.197 回答