Pull to refresh

Comments 16

Жду ваших исправлений, замечаний, дополнений.
Вот лень читать, прости, но АктивРекорд можно использовать просто как гем. Поэтому, мне кажется, достаточно использовать require 'active_record' для использования библиотеки (гема) и все.

Так, по крайней мере, я использую активрекорд в Синатре.
А почему всё: и конфиги, и исполняемые файлы — лежит в lib?
Я бы запуск функционала оформил посредством rake-задачи.
Я в Netbeans делал проект, там весь программный код лежит в lib. Можно и rake-задачу сделать, распарсить какой-нибудь каталог например.
Я считаю, что в таких поделках стоит сохранять структуру rails. Удобнее другим разработчикам разбираться в проекте, а также редакторы не будут сбиваться с толку. Например, vim всё так же будет хорошо понимать команды :Rlib, :Rtask и прочее.

ps. Перенесите пост в ruby?
Перенес.
Я считаю, что в таких поделках стоит сохранять структуру rails.

Ок, сделаю. Спасибо за отзыв :)
Не обязательно, можно создать и другие каталоги и добавить их в проект.
Небольшое отсутпление от темы: можно напрямую же брать XML с Яндекcной Погоды и парсить HTML не надо!
Согласен с комментом выше по поводу то что не надо конфиги и миграции в lib пихать.
Насколько понимаю в lib/main.rb не надо делать require 'active_record', он уже в enviroment есть. И require 'logger' лучше туда же перетащить. Еще бы неплохо все-таки модель вынести в отдельный файл, ну и вообще классами все оформить. Но это уже занудство, понимаю что тут не это показывается.

А материал полезный. Так то было понятно что active_record можно использовать без rails но вот как все это дело проинициализировать и сконфигурировать, этого не знал. Спасибо.
UFO just landed and posted this here
Вам спасибо за отзыв. Я новичок в программировании, конструктивную критику очень жду.
без рельс я бы использовал DataMapper (www.datamapper.org)

там имеется автоматическая подгрузка ассоциаций, да и синтаксис поприятнее:
# 'gt' means greater-than. We also do 'lt'.
Person.all(:age.gt => 30)

# 'gte' means greather-than-or-equal-to. We also do 'lte'.
Person.all(:age.gte => 30)

# 'not' allows you to match all people without the name "bob"
Person.all(:name.not => 'bob')

# If the value of a pair is an Array, we do an IN-clause for you.
Person.all(:name.like => 'S%', :id => [ 1, 2, 3, 4, 5 ])

# Does a NOT IN () clause for you.
Person.all(:name.not => [ 'bob', 'rick', 'steve' ])
а в MongoDB вообще не нужны миграции и схемы :)
ээм кажется человек пришел из С, С++ сферы, main.rb файл :)
Вообще сейчас, а может и раньше, применяется классовый и модульные подход. То есть оформляем классы, модули, в главном файле подгружаем их через autoload и используем все в главном файле, что избавит нас от написания простыней require '' в каждом файле… that's ruby way :)
Netbeans создает файл main.rb. А для демонстрации применения, я думаю, не надо создавать кучу классов и модулей =)
Есть еще как минимум дин метод конфигурирования связи с БД, более простой, нежели приведенный:

ActiveRecord::Base.establish_connection(
  :adapter => 'sqlite3',
  :database => 'database.sqlite3'
)
UFO just landed and posted this here
Sign up to leave a comment.

Articles