Переменное количество полей с MongoDB в Rails - PullRequest
1 голос
/ 13 мая 2011

Я хочу смоделировать атрибуты продукта электронной коммерции, которые можно изменить во время выполнения.

Так, например, на странице «Создание продукта» пользователь добавляет определенный продукт с атрибутами: цвет, размер .А затем добавляет еще один продукт с другими атрибутами: разрешение , размер диагонали .В основном пользователь может определять новые атрибуты во время выполнения.

Как мне обрабатывать переменные атрибуты в модели продукта?Я привык к реляционным базам данных, где поля каждой таблицы определены априори.


Редактировать: я использую Mongoid.Позвольте мне быть более конкретным.Допустим, у меня есть эта модель продукта:

class Product
  include Mongoid::Document
  field :title
  field :description
  field :price
# attributes not known yet ???
end

Другие поля продукта четко определены в модели, но не атрибуты.Возможно, Mongoid / MongoDB не заботится о том, определены они в модели или нет, а просто добавляет их в документ?

1 Ответ

1 голос
/ 13 мая 2011

Это сделано для тебя. Это просто работает. Добавьте атрибуты и сохраните их. Как это сделать, зависит от того, какой адаптер вы используете.

Вот простое руководство по настройке с MongoDB.org . И на этой странице есть документация, которая вам понадобится, если вы используете MongoMapper.

Использование Mongoid ? Опять же, просто установите атрибуты (вы должны будете устанавливать и получать к ним доступ как к хешу: используйте []= и []) и сохраните их. Динамические поля !

...