В настоящее время у меня есть модель листа с определенным атрибутом jsonb:
create_table "sheets", force: :cascade do |t|
t.string "name"
t.integer "user_id", default: 0, null: false
t.boolean "private", default: true, null: false
t.jsonb "t_data", default: {}, null: false
end
в атрибуте t_data jsonb я буду хранить список (то есть несколько строк), содержимое которого должно быть таким:
def sampleSheet('rows @> ?', {"CSS grade" => "X" }.to_json)
content
{
headings: [
"Rendering engine",
"Browser",
"Platform",
"Engine version",
"CSS grade"
],
rows: {
"line_0":{
"Rendering engine":"Trident",
"Browser":"Internet Explorer 4.0",
"Platform":"Win 95+",
"Engine version":"4.0",
"CSS grade":"X"
},
"line_1":{
"Rendering engine":"Trident",
"Browser":"Internet Explorer 5.0",
"Platform":"Win 95+",
"Engine version":"5",
"CSS grade":"C"
},
этот запрос
Sheet('rows @> ?', {"CSS grade" => "X" }.to_json)
вызывает ошибку
NoMethodError: undefined method `Sheet' for main:Object
Я не уверен, что это лучшая схема... так как я хотел бы запросить все строки с разными заголовками, т.е. "Класс CSS" == "X", "Браузер" содержит "Проводник"...
Любые предложения по переписыванию моей схемы приветствуются...