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


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

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

     за 2010 год

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

      Ruby

      включает:
      Rails

      Из моих ruby tips, проверить что к нам пришел действительно Int

      14:23, 27 сентября 2006 ( )

      params[:id].to_i.is_a?(Integer)

      Таким образом вот такой получается код, проверяющий, есть ли участок в базе

          @lot=Lot.find_by_id(params[:id]) if params[:id].to_i.is_a?(Integer)
          if !@lot
            flash[:notice]="Укажите, пожалуйста, существующий номер участка"
            redirect_to :action=>'index'
          else
            @page_title="Запрос контактов на участок #{@lot.id.to_s}"
          end
       

       

      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) плюс поиск. Рекоммендую. 

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