IT-Expert
  IT-Expert / Веблог / Ключевые слова / Rails
Авторизация
Логин:
Пароль:


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

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

     за 2010 год

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

      Rails

      Picbrowser для плагина tinymce в Rails

      14:55, 20 сентября 2006 ( )

       Пришло время поделиться наработкой для Rails для загрузки изображений, вставки изображений в tinymce редактор. В tinymce появляется небольшая кнопочка рядом с адресом изображения, которая откроет окно Picbrowser и позволить производить манипуляции с файлами.

       

       

       

      Тестирование аплоада файла в rails

      15:07, 18 сентября 2006 ( )

      А теперь это делается вот так:

       post :change_avatar, 
      :avatar => ActionController::TestUploadedFile.new(
      Test::Unit::TestCase.fixture_path + '/files/spongebob.png',
      'image/png')

      Что, конечно, значительно проще, нежели было раньше

      Пример использования group_by в rails.

      19:38, 9 сентября 2006 ( )

      Раз я еще не всех напряг нашими "рельсами", то запишу пример офигительной мощи ruby и rails иже с ним.

      Хеш у нас Emunerable? Еще как Enumerable, поэтому доступна такая радость , как group_by. Пример будет прямо из серии magic ruby.

      Вот дано нам свыше немного объектов, которые имеют координаты, x и y.

      Задача, на первый взгляд, "ни фига себе". Но при наличии group_by превращается в аппетитный кусок кода.  

      @objs - полученные из find_all данные.

      @group_of_objs=@objs.group_by{|obj|

      "#{obj.x},#{obj.y}" 

      А что тут только что за magic поизошел?  Только что мы отправили в group_by блок кода, который получая obj как параметр выдавал строку в виде "x,y" на основании которой и провел группировку.

      На выходе мы получим хеш сгруппированных объектов в виде

      @group_obj={1=>obj1, 2=>[obj2,obj3]}

      Ну чем не красота? Всем красота. 

       

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

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

      Весьма удобным оказывается наряду с использованиями 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/ 

       

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

      11:23, 15 августа 2006 ( )

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

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

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


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

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

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

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

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

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

       

      Пример применения для понимания полезнейшего in_groups_of

      10:42, 11 августа 2006 ( )

      В Ruby есть замечательная штука, in_groups_of. Это полезно, когда хотите построить таблицу, скажем из 3х колонок, растыкивая данные по каждой колонке.

      Делается это не просто, а очень просто.

      Имеем массив объектов @category=Category.find_all

      применение:
      @category.in_groups_of(3) do |category_item|

          category_item[0].name ## первый элемент   
          category_item[1].name  ## второй
          category_item[2].name ## третий

      end

       Вот такая мегафича

       

      Поисковый плагин для документации Rails

      09:24, 8 августа 2006 ( )

      Андрей Горбатов написал плагин для Firefox для встраивания поиска по сайту документации railshelp.com. Не уверен что буду пользоваться именно этим методом для поиска по документации, но все равно, спасибо :)

      rails help search

      http://www.gorbatov.org/ffplugins/railsapihelp.zip
      Размер архива 1,3Кб ;)

       

      Простой способ сгенерить XML из Rails

      17:26, 7 августа 2006 ( )

      Удивился всего паре строк посвященных XML в Rails, как в API, так и в Wiki ровным счетом 5 строк :)
      Поразительно, но этого оказалось достаточно для решения моей задачи.

      Итак, задача сформировать XML из таблицы в определенном виде решается следующим образом:

      controller mapdata.rb 

      def geodata  
        @regions=Region.find_all
        render :layout=>false ## что бы не прицепился application.rhtml
      end

      вьюшка geodata.rxml ### обратите внимание, это RXML (!)

      xml.instruct! :xml, :version=>"1.0"
      xml.map{
        for region in @regions
          xml.point(region.name,{:x=>region.xpoint,:y=>region.ypoint}) 
      end
      }

      Про аттрибуты в доке ни слова, поэтому был опробован интуитивный вариант указания аттрибутов в доп. хеше, который и сработал. И мы получаем такой xml:

      <map>
      <region x="1" y="2">Name1</region>
      <region x="2" y="3">Name2</region>
      </map> 

       

      Документация к Rails. Способы доступа к документации.

      16:07, 4 августа 2006 ( )

      После запроса к знающим людям в google группы по ROR выкристализовались три метода чтения документации:

      1. непосредственнои из браузера по адресу http://api.rubyonrails.org/
      2. При помощи rdoc и gem_server (что дает ту же документацию что и api.rubyonrails, только с localhost)
      3. При помощи firefox плагина DevBoi http://www.martincohen.info/products/devboi/. (попробую юзать, мне кажется этот метод самым перспективным). Ключает в себя доку по HTML,CSS,Javascript, и, как плагин, можно доставить Rails 1.1.2 доку. 

      Слева в окне - элементы, аттрибуты, свойства, объекты. При даблклике открывает в основном окне ссылку на описание элемента на сайте-источнике. Т.е. по HTML открывается w3c, по Rails открывается api.rubyonrails.org

       

       

       UDAPTED:
      А также, процитирую:

      Можно еще юзать http://www.gotapi.com/
      Там быстрая навигация по всем нужным докам (Ruby Core, Rails API, HTML,
      CSS, JavaScript DOM, Prototype) плюс поиск. Рекоммендую. 

       

      Особенности установки Ruby on the Rails в Ubuntu

      11:28, 4 августа 2006 ( )

      Не только я считаю, что для разработки под rails достаточно набора radrails+webrick. И то и другое очень хорошо работает как на Windows, так и на Linux. На Windows вся установка сводится к разворачиванию InstantRails, а вот в Ubuntu прошло практически все гладко, окромя установки mysql gem.

      Последовательность действий для установки Rails под Ubuntu (лучше Rails ставить из gems, нежели из портов, где версия почти всегда более устаревшая).

      sudo apt-get install ruby
      sudo apt-get install rdoc
      sudo apt-get install ri
      sudo apt-get install build-essentials (без этого не установится mysql gem!)

      sudo apt-get install libmysql (у меня 5й версии)

      качаем и устанавливаем ruby gems  (http://rubyforge.org/projects/rubygems/)

      затем

      sudo gem install rails -y
      sudo gem install mysql

      ну и при желании ставим ImageMagick:
      sudo apt-get install ImageMagick
      gem install RMagick

      и все :)

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