IT-Expert
  IT-Expert / Веблог / Записи за август 2006
Авторизация
Логин:
Пароль:


 
Поиск по записям:

Ключевые слова:
Записей в блоге
 за 2023 год
 за 2022 год
 за 2021 год
 за 2015 год
 за 2014 год
 за 2013 год
 за 2012 год
 за 2011 год

     за 2010 год

       за 2009 год
       за 2008 год
       за 2007 год
       за 2006 год
       за 2005 год
      RSS лента Лента новостей IT-Expert 

      Работа с данными в Rails. Fixtures.

      12:54, 30 августа 2006 ( Ruby Rails )

      Весьма удобным оказывается наряду с использованиями migrations способ хранения данных в fixtures.

      Для этого из Rails Recipes подсмотрено было два скрипта: export_fixtures и load_exportes_fixtures.

      Для инсталляции копируем в lib/tasks следующие два скрипта:

      extract_fixtures.rake и load_exported_fixtures.rake 

      Для работы создаем каталог db/exported_fixtures. Теперь представим, что в рабочей базе мы уже наколбасили некоторые данные, делаем

      rake extract_fixtures 

      после чего немедленно получим дамп данных в db/exported_fixtures в формате yaml. 

      Для загрузки этих же данных в пустые таблицы (после миграции, например, делаем

      rake load_exporte_fixtures

       

      И никаких танцев с бубнами :) 

      Что бы использовать данные в базе для тестовых fixtures мы можем возпользоваться плагином ar_fixtures

      ./script/plugin install http://topfunky.net/svn/plugins/ar_fixtures
      который позволит в консоли сделать, скажем, так 
      >User.find_all
      # посмотрим записи
      >User.to_fixture
      # сохранить в tests/fixtures/users.yml

       детальнее описано здесь:

      http://nubyonrails.com/articles/2005/12/27/ 

       

      Оффтоп, которым очень хотелось поделиться

      17:55, 29 августа 2006 ( Daily thoughts )

      - Что это?
      - Песочные часы.
      - А для чего они?
      - Часы – это жизнь одного человека. Песок – это его проблемы. Каждая упавшая песчинка, это еще одна проблема, которую человек сумел решить.
      - А долго он будет сыпаться?
      - У каждого по разному, чей-то песок стекает вниз за день, чей-то не может пересыпаться за годы.
      - А что будет, когда песок весь пересыпется вниз?
      - Будет немножечко счастья.- сказал Бог, лукаво посмотрев на несмышленого молодого ангела и перевернул опустевшие часы.
      Песок снова медленно устремился вниз.

        читать далее >>

      Как-то незаметно сайт открылся chieftec.kiev.ua

      02:14, 26 августа 2006 ( Web Development Daily thoughts )

      Первое созданное с нуля на Rails произведение веб-исскуства  про хорошие корпуса Chieftec. Нет повода не разбить бутылку шампанского о веб-сервер chieftec.kiev.ua.

      Одно только огорчает. При активном юзании картинок в админзоне, превью разные, аплоады, и иже с ним,  то что из TinyMCE выпадает, то процесс ruby18 начинает кушать под 200Мб памяти, а т.к. таких процессов запущено два, то ресурсов оказывается все меньге и меньше. В обычном же режиме на процесс уходит порядка 20Мб, что более чем приемлемо. Также включен встроенный механизм кеширования, который умно генерит статику (при контекстных изменениях в админе статика убивается). Т.к. особо динамичных частей на сайте нет, то он почти на 95% сейчас весь статичен. Правда круто?   

       

      Кстати, вот интересный совет нашелся

      15:48, 25 августа 2006 ( Daily thoughts Linux )
      Люди рекоммендуют включать focus follows mouse, это такой режим работы в X, когда при наведении мыши на другое окно, окно на которое была наведена мышь, перехватывает фокус, но не выдвигает окно на передний план (для этого нужен клик по окну). Это позволяет нам, раз уж мы хватаемся за мышь, юзать ее в операциях copy-paste наиболее эффективно.  

      Немножко юникс - типсов

      15:45, 25 августа 2006 ( FreeBSD GNU Linux )

      http://www.igso.net/nkb/Unix_Tips

      содержит полезные вещи типа:

      How to list all the open ports and programs:

      [linux]$ netstat -apne --inet
      [freebsd]$ sockstat

       

       

      Оказалось что watch в Linux и watch в FreeBSD это совершенно разные команды

      15:43, 25 августа 2006 ( Administration FreeBSD GNU Linux )

      nexus@nexus:~$ uname -a
      Linux nexus 2.6.15-26-386 #1 PREEMPT Thu Aug 3 02:52:00 UTC 2006 i686 GNU/Linux
      nexus@nexus:~$ whatis watch
      watch (1)            - execute a program periodically, showing output fullscreen

      root@webber:~# uname -a
      FreeBSD webber.it-link.com.ua 4.10-STABLE FreeBSD 4.10-STABLE #1: Mon Jul 26 09:54:43 EEST 2004     root@webber.it-link.com.ua:/usr/src/sys/compile/www  i386
      root@webber:~# whatis watch
      watch(8)                 - snoop on another tty line

      Ну а если хотите такую же функциональность  watch в FreeBSD как и в Linux, то portinstall cmdwatch

      и юзание cmdwatch.

      Типичный случай:

          cmdwatch df

       

       

      Итак, открываем серию хинтов и типсов под названием "Посмотри мама, как я умею"

      14:45, 25 августа 2006 ( Administration FreeBSD GNU Linux )

      Многие видели файлы конфигурации заканчивающиеся на .sample?

      К примеру, httpd.conf.sample , mime.conf.sample.

      Ручками переименовать каждый? А давайте лучше юзать bash extenstions.

      Переименование (копирование) будет выглядеть примерно так:

      cp httpd.conf{.sample,}

      Да-да, вот так бесхитростно скопируем все httpd.conf.sample в httpd.conf без .sample.  unix magic, однако :)

       

      А вот вам еще онлайновый Excel от Google

      12:51, 18 августа 2006 ( Web Development )

      http://spreadsheets.google.com/

      Каждая работа гугла из серии "А вам слабо?". 

       

      Использование объекта flash

      11:23, 15 августа 2006 ( Web Development Ruby Rails )

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

      Применение его на практике очено простое:

      в контроллере:
      flash[:notice]="Ваши данные сохранены"
      redirect_to :action=>'someaction'


      в вьюшке:
      <%= flash[:notice] if flash[:notice] %>

       И это очень удобно, т.к. состояние flash сохраняется в сессии, и срабатывает при редиректе. Это же является и проблемой, когда у вас срабатывает, к примеру, post формы без redirect, то вы увидите эту же flash дважды(!). А такой хоккей нам не нужен.

      Странно, что в api это не документировано, юзаем метод now обзекта flash следующим образом:

      flash.now[:notice]="Ваши данные сохранены".

      И сообщение появляется только один раз, что нам и требовалось.

      Кстати, о различиях в квотировании строк.
      Если мы используем " (двояная кавычка), то эти строки будут обрабатываться на наличие ruby инструкций, в то время как ' (одинарная кавычка) пройдет без дополнительных проверок.

       
      страницы:
       1 
      2 3
      © Максим Прокопов 2005-2024 О сервере