所以我在rails DB中有一个带有元数据列的用户对象。我希望能够做的是基于此列的查询......
所以我的[xml] $xml = Get-Content $path
$xml.SelectNodes("//tr") |
Where-Object {$_.ChildNodes.Count -gt 0 -and $_.ChildNodes[0].Name -eq 'td'} |
ForEach-Object {$_.ChildNodes[0].InnerText}
有User
和User.name
。我设置了商店,所以我有:
User.metadata
如果我store_accessor :metadata, [:hair_color, :eye_color]
我得到User.first.hair_color
就像我期望的那样......似乎没有效果的是blue
。如何基于元数据进行查询?
答案 0 :(得分:1)
如果您想存储任意复杂的信息(例如元数据),我建议使用JSON列类型,该类型可在MySQL和Postgre中使用。以下是官方文档中有关saving and querying JSON data in Rails的一些信息。
答案 1 :(得分:0)
你必须像这样搜索
User.where("metadata like ?", "%#{matadata_key}: #{metadata_value}%")
对于您的示例,metadata_key
为"hair_color"
,metadata_value
为"blue"
这将是一个非常慢的搜索。阅读this blog了解更多详情