Ruby + ActiveRecord: чтение из базы данных - PullRequest
1 голос
/ 01 марта 2011

Я написал скрипт Ruby, который анализирует текстовый файл с разделителями табуляции и записывает вывод в базу данных sqlite3 с ActiveRecord. Далее мне нужно написать еще один скрипт на Ruby для отображения содержимого базы данных в виде статического HTML.

Текстовый файл, с которым я работаю, представляет собой список деталей, которые моя компания выставила на продажу. В моей базе данных есть одна таблица; каждая строка в базе данных - это отдельная часть, а каждый столбец - это отдельный атрибут этой части (то есть размер, вес, прейскурант и т. д. и т. д.) Мне нужно иметь возможность сортировать таблицу по столбцу «краткое описание» в алфавитном порядке, а затем выводить каждую строку в виде серии таблиц HTML.

Я понятия не имею, что делать дальше. Я работал с Ruby около двух недель, и я использовал ActiveRecord около четырех дней, так что я немного растерялся. Я весь день гуглял за ответом, но не нашел ничего похожего на то, что я хочу сделать.

Вот копия объявления таблицы sqlite3, если это поможет:

CREATE TABLE parts_info(item_number INTEGER PRIMARY KEY ASC, location TEXT, 
quantity INTEGER, make TEXT, year INTEGER, model TEXT, serial TEXT, volt INTEGER, 
phase INTEGER, weight INTEGER, list_price REAL, sold INTEGER, 
image_path TEXT, short_desc TEXT, long_desc TEXT, junk TEXT);

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

Ответы [ 2 ]

1 голос
/ 01 марта 2011

Если вы используете модель ActiveRecord, вы можете вернуть все содержимое таблицы модели с помощью ModelName.all. Другой вариант для перебора всех записей в таблице - метод ModelName.find_each. Это позволяет вам эффективно делать что-то вроде следующего.

ModelName.find_each do |model_var|
  <tr>
    <td>model_var.attribute_1</td>
    <td>model_var.attribute_2</td>
    # and so on...
  </tr>
end

Очевидно, что это очень просто, возможно, даже примитивно, но если все, что вам нужно, это дамп текста в файл, это будет работать. Если вам нужно создать этот html на лету, то вам стоит взглянуть на MVC-фреймворк, такой как Rails или Sinatra.

1 голос
/ 01 марта 2011

Идея с activerecord состоит в том, что у вас есть модель, представляющая строку в вашей таблице, и activerecord автоматически отображает данные из базы данных в экземпляры вашего объекта, и наоборот.

Итак, чтобы создатьHTML-таблицу, вы хотите получить список объектов PartsInfo и преобразовать их в HTML.Для этого есть несколько вариантов: Вы можете использовать файл шаблона ERB , чтобы превратить ваш объект в нужный HTML.Возможно, вы захотите взглянуть на Builder gem.

Отредактировано для добавления: Чтобы получить список объектов, вы используете ActiveRecord методы запроса .Например, PartsInfo.all.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...