<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>hudson@work &#187; ruby on rails</title>
	<atom:link href="http://hudson.su/tag/ruby-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://hudson.su</link>
	<description>статьи о web-разработке, менеджменте IT проектов и контроле качества</description>
	<lastBuildDate>Fri, 20 Jan 2012 13:15:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>BitNami &#8211; помощник ленивому программисту</title>
		<link>http://hudson.su/2010/05/30/bitnami-helps-lazy-programmer/</link>
		<comments>http://hudson.su/2010/05/30/bitnami-helps-lazy-programmer/#comments</comments>
		<pubDate>Sun, 30 May 2010 06:42:38 +0000</pubDate>
		<dc:creator>hudson</dc:creator>
				<category><![CDATA[Профессиональное]]></category>
		<category><![CDATA[bitnami]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[hints]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[suse]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[web разработка]]></category>

		<guid isPermaLink="false">http://hudson.su/?p=1520</guid>
		<description><![CDATA[Кросспост из моего хабра. Век живи &#8211; век учись. Ковыряясь в публикациях о Ruby на википедии наткнулся на замечательный проект, который не только поможет ленивому программисту поднять development среду для своих нужд, но также во многих случаях выручит и администратора и менеджера проектов. Проект этот называется BitNami. Что же такое &#8211; BitNami? Целью BitNami является [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Кросспост из моего <a href="http://habrahabr.ru/blogs/webdev/94904/" target="_blank">хабра</a>.</p></blockquote>
<p>Век живи &#8211; век учись.</p>
<p>Ковыряясь в публикациях о Ruby на википедии наткнулся на замечательный проект, который не только поможет ленивому программисту поднять development среду для своих нужд, но также во многих случаях выручит и администратора и менеджера проектов. Проект этот называется <a href="http://bitnami.org" target="_blank">BitNami</a>.</p>
<p><span id="more-1520"></span>Что же такое &#8211; BitNami?</p>
<p>Целью BitNami является  упрощение процесса развертывания веб-приложений, таких как вики или блоги, что позволит сделать их более доступными. В мире есть много качественных программных пакетов с открытым исходным кодом, которые не  используются так широко, как они могли быть использованы, потому что установить их и настроить не каждому по плечу. Команда BitNami намерена бороться с этим.</p>
<p>BitNami Stack представляет  собой интегрированный пакет программного обеспечения, которое включает в  себя веб-приложение и все его необходимые компоненты (веб-сервер, базу  данных, Language Runtime), поэтому он готов к запуску &#8220;из коробки&#8221;. Stack&#8217;и могут быть представлены в виде нативных инсталляторов, образов виртуальных машин,  или образов для облачного хостинга.</p>
<p>Нативные инсталляторы &#8211; это отдельные исполнимые файлы, которые вы можете загрузить к себе на машину. После запуска инсталлятора будет выполнен пошаговый атоматический процесс установки выбранной системы. Инсталляторы доступны для Windows, Mac OS X, Linux и Solaris (согласитесь, этого более чем достаточно в 95% случаев).</p>
<p>Образы виртуальных машин &#8211; это преднастроенные виртуальные машины, которые включают минимальную инсталляцию Linux и собственно компоненты BitNami Stack. Образы виртуальных машин доступны для VMWare и последних версий VirtualBox.</p>
<p>Образы для облачного хостинга позволяют вам запустить BitNami Stack в облачном окружении и программно запускать или останавливать его. Облачные образы на текущий момент доступны для Amazon EC2, кроме того планируется также поддержка других облачных хостингов.</p>
<p>Независимо от того, какой тип стека выберете, все они позволяют запустить выбранное вами приложение в считанные минуты, не тратя времени на его конфигурирование и настройку.</p>
<p>На текущий момент доступно уже несколько десятков стеков. Вот некоторые из них:</p>
<ul type="none">
<li><strong>Infrastructure</strong>
<ul>
<li>DjangoStack</li>
<li>LAMPStack</li>
<li>RubyStack</li>
<li>&#8230;</li>
</ul>
</li>
<li><strong>Blog</strong>
<ul>
<li>WordPress</li>
<li>&#8230;</li>
</ul>
</li>
<li><strong>Bug-Tracking</strong>
<ul>
<li>Redmine</li>
<li>&#8230;</li>
</ul>
</li>
<li><strong>CMS</strong>
<ul>
<li>Drupal</li>
<li>Joomla</li>
<li>Radiant CMS</li>
<li>&#8230;</li>
</ul>
</li>
<li><strong>Forum</strong>
<ul>
<li>phpBB</li>
</ul>
</li>
<li><strong>Version  Control</strong>
<ul>
<li>Subversion</li>
</ul>
</li>
<li><strong>Wiki</strong>
<ul>
<li>DokuWiki</li>
<li>MediaWiki</li>
<li>&#8230;</li>
</ul>
</li>
</ul>
<p>Где же могут нам пригодиться BitNami Stacks?</p>
<ul>
<li>Локальные девелоперские среды.</li>
<li>Вируализация девелоперских сред на централизованных началах (безобразно, но однообразно, как в армии).</li>
<li>Тестирование CMS, Wiki, багтрекеров &#8211; поиграться, чтобы понять, а нужно ли оно вообще, подходит ли.</li>
<li>Развертывание быстрых конфигураций в продуктовых средах (облачный хостинг как минимум).</li>
<li>Ваш вариант?</li>
</ul>
<p>Я уже опробовал VMWare образы Python/Ruby/Redmine &#8211; очень понравилось. Django Stack (native installer) почему-то не установился на Win7 &#8211; что-то с PostgreSQL, пока детально не разбирался.</p>
<p>Вот вкратце и все. Надеюсь, был полезен ))</p>
]]></content:encoded>
			<wfw:commentRss>http://hudson.su/2010/05/30/bitnami-helps-lazy-programmer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Тонкости Ruby-on-Rails для начинающего. Routing. Layout. Form validation.</title>
		<link>http://hudson.su/2009/09/05/nuances-of-ruby-on-rails-for-beginner-routing-layout-form-validation/</link>
		<comments>http://hudson.su/2009/09/05/nuances-of-ruby-on-rails-for-beginner-routing-layout-form-validation/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 23:51:00 +0000</pubDate>
		<dc:creator>hudson</dc:creator>
				<category><![CDATA[Профессиональное]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://hudson.su/?p=93</guid>
		<description><![CDATA[Оразвертывании и первых шагах,&#160;CRUD&#8217;ах и прочем много написано. На этом останавливаться не хочется. Тем не менее мне кажется для тех кто осваивает Rails (например после Symfony или ZendFramework) нижесказанное будет полезным (т.е. у читателя предполагается некоторое знание MVC&#160;фреймворков для PHP/Perl/Python). Итак. Проект создан,&#160;первый контроллер сгенерирован. Что дальше?&#160; Дальше&#160;желательно убрать начальную страничку и указать какие controller/action [...]]]></description>
			<content:encoded><![CDATA[<p>Оразвертывании и первых шагах,&nbsp;CRUD&#8217;ах и прочем много написано. На этом останавливаться не хочется. Тем не менее мне кажется для тех кто осваивает Rails (например после Symfony или ZendFramework) нижесказанное будет полезным (т.е. у читателя предполагается некоторое знание MVC&nbsp;фреймворков для PHP/Perl/Python).</p>
<p>Итак. Проект создан,&nbsp;первый контроллер сгенерирован. Что дальше?&nbsp;</p>
<p><span id="more-93"></span></p>
<p>Дальше&nbsp;желательно убрать начальную страничку и указать какие controller/action у нас будут за Homepage. Да,&nbsp;нужно копать в сторону роутинга (<strong>routing</strong>).  Описание роутов находится в <strong>config/routes.rb</strong>. Также просмотреть их можно выполнив <strong>rake routes</strong>. Изначально роута 2:</p>
<p><em><strong>/:controller/:action/:id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />/:controller/:action/:id(.:format) <br /></strong></em><br />Если использовали генерацию CRUD&nbsp;то на каждую подобную операцию добавляется строка в routes.rb и прилично число роутов,&nbsp;которые этому CRUD&#8217;у соответствуют.</p>
<p>Ну а нас интересует главная страница,&nbsp;которая определяется таким вот образом:</p>
<p><em><strong>map.root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :controller =&gt; &#8216;index&#8217;</strong></em></p>
<p>Здесь подразумевается :action =&gt;&nbsp;&#8217;index&#8217;. Если нужен другой,&nbsp;думаю сообразите как его прописать. </p>
<p>Ах,&nbsp;да,&nbsp;и удалите index.html &#8211; он больше не понадобится <img src='http://hudson.su/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>ОК. Главная страница есть. Шаблон экшена есть. Нужен layout для всей апликации. Пришлось немного покопаться,&nbsp;чтобы выяснить &#8211; согласно правилам именования в RoR общий Layout приложения находится в app/views/layouts и называется application. У&nbsp;меня заработал такой вариант:</p>
<p><em><strong>app/views/layouts/application.rhtml</strong></em></p>
<p>Если хотите &#8211; попробуйте .erb или .html.erb.</p>
<p>Далее возникло желание разместить простую формочку на страничке. В&nbsp;RoR&nbsp;принято пользоваться хэлперами. Хэлперы форм бывают привязанные к модели и не привязанные к модели.</p>
<p>Если через форму создается некий объект модели,&nbsp;то тут все просто и везде очень похоже объясняется. Тут вам и валидация и сообщения об ошибках (такая вот фирменная фишечка видимо)&#8230; НО я хотел форму отправки email сделать. Какой там объект БД?&nbsp;А&nbsp;валидацию в едином стиле хочется. </p>
<p>Вот тут придется извратиться. Точнее обратиться к классу <strong>ActiveRecord::BaseWithoutTable</strong>. Взять его можно здесь <a href="http://gitorious.org/activerecord-basewithouttable-for-rails-2">gitorious.org/activerecord-basewithouttable-for-rails-2</a> но придется установить неофициальную сборку GIT&nbsp;(msysgit <a href="http://code.google.com/p/msysgit/">code.google.com/p/msysgit/</a> ). После установки (которая кстати выглядела как сборка из исходников) отобразилась консоль,&nbsp;в которую достаточно скопировать </p>
<p><em><strong><span><code>git clone </code></span></strong></em><span><code><a class="link_noop" href="//gitorious.org/activerecord-basewithouttable-for-rails-2/mainline.git"><em><strong>git://gitorious.org/activerecord-basewithouttable-for-rails-2/mainline.git</strong></em></a></p>
<p></code></span>и класс будет скачан и размещен по месту установки тула (немного придется поискать, но думаю по расширению .rb вы его легко найдете. У&nbsp;меня он,&nbsp;оказался в директории </p>
<p><em><strong>c:Program Files (x86)msysgitmsysgitgitmainlinelib</strong></em></p>
<p>Полученную директорию с классом можно скопировать в Libs.</p>
<p>Далее как написано в документации,&nbsp;работаем как описано в документации для форм,&nbsp;связанных с объектом. Точнее почти так же:</p>
<p>- в app/models я вручную создал класс <strong>pseudo_contact.rb -&gt;&nbsp;PseudoContact </strong></p>
<p>- в классе указал какие поля каких типов мне нужны и правила валидации (обычным образом):</p>
<p><em><strong>class </strong></em><strong>PseudoContact </strong><em><strong> &lt; ActiveRecord::BaseWithoutTable<br />&nbsp; column :name, :string<br />&nbsp; column :email_address, :string<br />&nbsp; column :message, :text<br />&nbsp; <br />&nbsp; validates_presence_of :name, :email_address, :string<br /> end</strong></em></p>
<p>В&nbsp;этой модели-валидаторе мы просто проверяем заполнение обязательных полей. Остальные валидаторы применяются так же. О&nbsp;них можно погуглить или почитать в спецлитературе.</p>
<p>И&nbsp;после этого можно заняться формой. Но начнем с контроллера. Определим метод,&nbsp;который будет обрабатывать отправленную форму. Предположим что у нас был IndexController и index экшен. Для простоты он и будет использоваться для обработки формы.</p>
<p><em><strong>class IndexController &lt; ApplicationController</p>
<p> # Index#index<br /> # <br />def index<br />&nbsp; @pseudo_contact = PseudoContact.new(params[:pseudo_contact])<br />&nbsp; @pseudo_contact.save if request.post?<br />end<br />end</strong></em></p>
<p>Здесь сначала создается экземпляр <em><strong>PseudoContact</strong></em> по данным из запроса <em><strong>params[:pseudo_contact]</strong></em>. После этого запись сохраняется,&nbsp;если метод запроса POST. Естественно псевдо-запись не сохраняется,&nbsp;но инициируется валидация.</p>
<p>Форма для данного случая может быть такой: сначала отображаем сообщения об ошибках,&nbsp;если они есть:</p>
<p><strong>&lt;div&gt;<br />&lt;%= error_messages_for :pseudo_contact %&gt;<br />&lt;/div&gt;</strong></p>
<p>Здесь <strong>:pseudo_contact</strong>&nbsp; это инстанс,&nbsp;который создается в контроллере</p>
<p>Затем рендерится собственно форма:</p>
<p><em><strong>&lt;div&gt;<br />&lt;% form_for :pseudo_contact do |form| %&gt;<br />&nbsp;&nbsp;&nbsp; &lt;label&gt;Name&lt;/label&gt;<br />&nbsp;&nbsp;&nbsp; &lt;%= form.text_field :name %&gt;<br />&nbsp;&nbsp;&nbsp; &lt;label&gt;Email&lt;/label&gt;<br />&nbsp;&nbsp;&nbsp; &lt;%= form.text_field :email %&gt;<br />&nbsp;&nbsp;&nbsp; &lt;label&gt;Message&lt;/label&gt;<br />&nbsp;&nbsp;&nbsp; &lt;%= form.text_area :message %&gt;<br />&nbsp;&nbsp;&nbsp; &lt;br /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;%= submit_tag  %&gt;<br />&lt;% end %&gt;<br />&lt;/div&gt;</strong></em></p>
<p>Сообщения об ошибках можно выводить и для отдельного поля. Хочется также отметить что если форма имеет ошибки,&nbsp;то каждое поле с ошибочными данными оборачивается в DIV&nbsp;с классом <strong><span class="nodeLabelBox repTarget "><span class="nodeAttr editGroup "><span class="nodeValue editable ">fieldWithErrors</span></span></span></strong>:</p>
<p><strong><span class="nodeLabelBox repTarget ">&lt;<span class="nodeTag ">div</span><span class="nodeAttr editGroup ">&nbsp;<span class="nodeName editable ">class</span>=&quot;<span class="nodeValue editable ">fieldWithErrors</span>&quot;</span><span class="nodeBracket editable insertBefore ">&gt;</span></span></strong>
<div class="nodeChildBox ">
<div class="nodeBox emptyNodeBox  repIgnore  selected">
<div class="nodeLabel "><strong><span class="nodeLabelBox repTarget ">&lt;<span class="nodeTag ">input</span><span class="nodeAttr editGroup ">&nbsp;<span class="nodeName editable ">id</span>=&quot;<span class="nodeValue editable ">pseudo_contact_from_name</span>&quot;</span><span class="nodeAttr editGroup ">&nbsp;<span class="nodeName editable ">type</span>=&quot;<span class="nodeValue editable ">text</span>&quot;</span><span class="nodeAttr editGroup ">&nbsp;<span class="nodeName editable ">value</span>=&quot;&quot;</span><span class="nodeAttr editGroup ">&nbsp;</span><span class="nodeAttr editGroup "><span class="nodeName editable ">name</span>=&quot;<span class="nodeValue editable ">pseudo_contact[name]</span>&quot;</span><span class="nodeBracket editable insertBefore ">/&gt;</span></span></strong></div>
</div>
</div>
<div class="nodeCloseLabel "><strong><span class="nodeCloseLabelBox repTarget ">&lt;/<span class="nodeTag ">div</span>&gt;</span></strong></div>
<p>Поэтому желательно заранее определить для него стиль,&nbsp;например такой:</p>
<p><strong>.fieldWithErrors {<br />&nbsp;&nbsp;&nbsp; padding: 2px;<br />&nbsp;&nbsp;&nbsp; background-color: red;<br />&nbsp;&nbsp;&nbsp; display: table;<br />}</strong></p>
<p>Вот и все на сегодня.<br /><em><br /></em><em><strong><br /></strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://hudson.su/2009/09/05/nuances-of-ruby-on-rails-for-beginner-routing-layout-form-validation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Установка Ruby on Rails на Fedora 7</title>
		<link>http://hudson.su/2008/09/26/install-ruby-on-rails-on-fedora7/</link>
		<comments>http://hudson.su/2008/09/26/install-ruby-on-rails-on-fedora7/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 16:51:00 +0000</pubDate>
		<dc:creator>hudson</dc:creator>
				<category><![CDATA[Профессиональное]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[web разработка]]></category>

		<guid isPermaLink="false">http://hudson.su/?p=67</guid>
		<description><![CDATA[Ну вот и до меня докатился звон рельс Попробуем RoR на вкус и начнем с установки. Имеется: VPS с Fedora 7 Требуется сделать его пригодным для освоения RoR Внимание: Устанавливать RoR лучше через RubyGems. Почему &#8211; поищите сами или почитайте например здесь (eng). Если интерпретатор Ruby у вас уже установлен, то вы можете смело пропустить [...]]]></description>
			<content:encoded><![CDATA[<p>
<div class="contenttext">
<p>Ну вот и до меня докатился звон рельс <img class="wp-smiley" alt=":)" src="http://blog.hudson.su/wp-includes/images/smilies/icon_smile.gif" /> Попробуем RoR на вкус и начнем с установки.</p>
<p>Имеется:</p>
<ul>
<li>VPS с Fedora 7</li>
</ul>
<p>Требуется</p>
<ul>
<li>сделать его пригодным для освоения RoR</li>
</ul>
<p><span id="more-67"></span></p>
<p>Внимание:</p>
<ul>
<li>Устанавливать RoR лучше через <a href="http://rails.aizatto.com/2007/04/26/why-you-should-install-ruby-on-rails-using-rubygems/">RubyGems.</a> Почему &#8211; поищите сами или почитайте например <a target="_blank" href="http://rails.aizatto.com/2007/06/10/installing-ruby-on-rails-on-fedora-7/">здесь (eng)</a>.</li>
<li>Если интерпретатор Ruby у вас уже установлен, то вы можете смело пропустить шаг, касающийся его устновки.</li>
<li>Ради интереса можете глянуть <a target="_blank" href="http://rails.aizatto.com/category/installing-rails-on-ubuntu/">инструкцию по установке RoR на Ubuntu (eng)</a>.</li>
</ul>
<p>Порядок действий:</p>
<ul>
<li>Установим Ruby</li>
<li>Установим RubyGems из исходников</li>
<li>Установим Ruby on Rails через RubyGems</li>
<li>Проверим прямо ли установились &ldquo;рельсы&rdquo;</li>
</ul>
<p>Еще раз внимание:</p>
<ul><span class="block_default block_warning">
<ul>
<li>Многие команды необходимо выполнять из-под root. Строки, которые подразумевают рутовый доступ будут начинаться с диеза (#). Чтобы получить доступ как super user наберите <strong>su</strong><span class="block_default block_warning"> -.</span></li>
</ul>
<p>&nbsp;</p>
<p></span>
<li>Строки, начинающиеся со знака $ могут быть выполнены с правами обычного пользователя.
<p>&nbsp;</p>
</li>
<li>Не вводите пожалуйста в командной строке ни # ни $ с которых будут начинаться команды <img class="wp-smiley" alt=":)" src="http://blog.hudson.su/wp-includes/images/smilies/icon_smile.gif" /></li>
</ul>
<p><strong>Установим Ruby</strong></p>
<blockquote><p><span class="block_default block_terminal"><code>$ su -<br /># yum install ruby ruby-rdoc ruby-irb</code></span></p>
</blockquote>
<p>Если у вас возникает ошибка наподобие этой:</p>
<blockquote><p><span class="block_default block_terminal"><code>Loading &quot;installonlyn&quot; plugin<br />Existing lock /var/run/yum.pid: another copy is running as pid 2321. Aborting.</code></span></p>
</blockquote>
<p>подождите немного и запустите команду, указанную выше, еще раз.</p>
<p>Если спрашивается следующее:</p>
<blockquote><p><span class="block_default block_terminal"><code>warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2<br />Importing GPG key 0x4F2A6FD2 &quot;Fedora Project &quot; from /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora<br />Is this ok [y/N]:</code></span></p>
</blockquote>
<p>просто отвечайте &ldquo;y&rdquo;.</p>
<p><strong>Установим RubyGems из исходников</strong></p>
<p>Выполняем следующие команды:</p>
<blockquote><p><span class="block_default block_terminal"><code>cd /tmp<br />wget http://rubyforge.org/frs/download.php/43985/rubygems-1.3.0.tgz<br />tar -zxvf rubygems-0.9.4.tgz<br />cd rubygems-0.9.4<br /># ruby setup.rb</code></span></p>
</blockquote>
<p>Последнюю на момент инсталляции версию Ruby Gems можно поискать тут (<a target="_blank" href="http://rubyforge.org/projects/rubygems/">http://rubyforge.org/projects/rubygems/</a>)</p>
<p><strong>Установим Ruby on Rails через RubyGems</strong></p>
<p>Все просто: наберем в командной строке:</p>
<blockquote><p><span class="block_default block_terminal"><code># gem install -y rails</code></span></p>
</blockquote>
<p>Важно: если данная команда у вас не выполняется (ошибка)&nbsp; попробуйте выполнить команду</p>
<blockquote><p><span class="block_default block_important"><code># gem update</code></span></p>
</blockquote>
<p>и только потом пробуйте установить RoR.</p>
<p><strong>Проверим прямо ли установились &ldquo;рельсы&rdquo;</strong></p>
<p>Выполняем в консоли:</p>
<blockquote><p>rails /tmp/railstest</p>
<p>cd /tmp/railstest</p>
<p><code>./script/server</code></p>
</blockquote>
<p>Открываем любимый браузер (e.g. firefox) и открываем <code>URL <a href="http://localhost:3000/">http://localhost:3000</a>. Отобразившаяся страница должна сообщать об успешной инсталляции.<br /></code></p>
<h3>Еще немного</h3>
<p>Если вы собираетесь что-то разрабатывать на RoR, вам конечно же понадобится база данных. Стандартный набор таков:</p>
<ul>
<li>SQLite:<br />SQLite имеет смысл выбирать есзи хочется просто поэкспериментировать&hellip;</li>
<li>MySQL</li>
<li>PostgreSQL</li>
</ul>
<p>Вот и все <img class="wp-smiley" alt=":)" src="http://blog.hudson.su/wp-includes/images/smilies/icon_smile.gif" /> Проверено мной &#8211; работает.</p>
<p>P.S. На самом деле можно для отладки и не localhost использовать, а IP сервера. Ну например пока домен не подняли <img class="wp-smiley" alt=";)" src="http://blog.hudson.su/wp-includes/images/smilies/icon_wink.gif" /></p>
<p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;-</p>
<p>Оригинал статьи тут:</p>
<p><a target="_blank" href="http://rails.aizatto.com/2007/06/10/installing-ruby-on-rails-on-fedora-7/">http://rails.aizatto.com/2007/06/10/installing-ruby-on-rails-on-fedora-7/</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://hudson.su/2008/09/26/install-ruby-on-rails-on-fedora7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

