Загрузка файлов без обновления страницы в Ruby on Rails

Oct 28
2006 15:10 (AJAX, Программирование, Ruby on Rails) · English (60,981 views)

Друзья часто спрашивают меня, как загружать файлы на сервер при помощи AJAX, и обычно получают ответ “никак”. Ответ, конечно, правильный, но что если действительно нужно загрузить файл без полного обновления страницы? И, конечно, в этом случае хотелось бы использовать RJS. В этой заметке я расскажу, что делать, чтобы получить эффект, похожий на загрузку файлов при помощи AJAX (кстати, Gmail использует эту технику).

Читать дальше »

Гибкое конфигурирование приложения на Ruby on Rails

Oct 14
2006 06:27 (Программирование, Ruby on Rails) · English (14,470 views)

В моем текущем проекте на Ruby on Rails нужно хранить конфигурацию приложения. Я нашел несколько подходов к решению этой задачи: плагин AppConfig, несколько методов, описанных на странице Wiki HowtoAddYourOwnConfigInfo, но ни один из них не выглядит “похожим на конфигурационный файл”. Мы с другом, Алексеем Ковыриным, исследовали все, и решили использовать YAML-файл. Идеальной конфигурацией, как мне кажется, является следующий файл:

common:
  support_email: admin@myhost.com
  root_url: myhost.com
  photos_max_number: 6

production:
  email_exceptions: true

development:
  root_url: localhost:3000
  photos_max_number: 10

В этом примере можно увидеть три раздела: common используется как базовая конфигурация для всех окружений, production и development - настройки, специфичные для окружения. Возможными разделами являются production, development и testing, а также любые другие пользовательские имена окружений. Я разместил этот файл в config/config.yml и добавил следующий код в config/environment.rb:

require 'ostruct'
require 'yaml'

config = OpenStruct.new(YAML.load_file("#{RAILS_ROOT}/config/config.yml"))
env_config = config.send(RAILS_ENV)
config.common.update(env_config) unless env_config.nil?
::AppConfig = OpenStruct.new(config.common)

Теперь я могу использовать конструкции вида AppConfig.support_email и AppConfig.root_url. Похоже на то, что мои конфигурационные файлы соответствуют принципу DRY, насколько это возможно :-)

Обновление Apache до версии 2.2 в Debian

Oct 13
2006 08:33 (Debian, Ruby on Rails) · English (18,634 views)

Хорошие новости, парни! Apache 2.2 уже в unstable. Я был очень удивлен, когда попытался сделать apt-get install apache2-utils, и он предложил мне удалить apache2 и установить заново :-) Я решил установить новую версию и потестировать rails с Apache2, mod_proxy_balancing и mongrel. В этой заметке я опишу мои приключения (или злоключения?)

Читать дальше »

validates_uniqueness_of and MySQL unique index

Oct 11
2006 09:52 (Программирование, Ruby on Rails) · English (9,319 views)

Вчера в русскоязычной рассылке по RoR обсуждалась следующая проблема. MySQL поддерживает уникальные индексы, а модели - ограничение validates_uniqueness_of. Нужно ли нам обрабатывать исключения MySQL, или валидации RoR достаточно?

Читать дальше »

Кодирование медиа-файлов в Ruby при помощи ffmpeg/mencoder с отслеживанием статуса процесса

Oct 11

В моем текущем проекте понадобилось кодировать медиа-файлы из любого формата в несколько определенных. Более того, мне нужно отслеживать статус процесса и отображать его пользователю. Я не хочу описывать, какие форматы нужны, и с какими проблемами я столкнулся при кодировании (может это будет в последующих заметках, если кого-нибудь заинтересует), здесь я расскажу общую идею реализации скриптов для кодирования и отслеживания прогресса.

Читать дальше »

 
Copyright © 2005 - 2008, Dmytro Shteflyuk