Ruby on Rails

Хостинг на Ruby on Rails сайт при Space.bg

Използвате споделен хостинг за Ruby on Rails от Space.bg – те направиха, някои промени като това, че забраниха инсталирането на локални rubygems в профила на потребителя.

Така вариантите за инсталиране на необходими rubygems са два:

  • да им пишете за всеки необходим Ви RubyGem
  • да използвате Bundler
Използването на Bundler според мен е по-удачният вариант. Как да използваме bundler? Bundler предлага една много удобна опция “bundle install –deployment” – това е алтернатива на freeze gems.

Какво трябва да направим?

На вашата dev машина описвате всички необходими файлове в Gemfile и стартирате: bundle install –deployment. Тази команда ще инсталира всички gems, от които зависи Вашето приложение в “vendor/bundle”. В общи линии е това :) Не забравяйте да качите Gemfile.lock и .bundle/config във системата Ви за контрол на кода, от която най-вероятно правите deploy.

Някои особености: Rubygems като mysql2, unicode и т.н. изискват компилиране. След като сте качили Вашият сайт/приложение при space.bg трябва да инсталирате тези rubygems. В основната директория на Вашето приложение инсталирате подобен род rubygems по следният начин: bundle exec gem install mysql2

В така създадения production env ще трябва да излолвате bundle exec и за rake команди като например: bundle exec rake db:migrate

Rails 3, Rack 1.2.1 & Dreamhost

Ако използвате споделен хостинг за Rails 3.0.X приложения, сайтове от Dreamhost, може би сте се сблъскали със следният проблем:

You have already activated rack 1.2.1, but your Gemfile requires rack 1.2.3

Проблема идва от това, че Passenger зарежда първо Rack от системата, а не от локално инсталираните gems, ако се презареди страницата след възникване на грешката всичко ще бъде наред, а всъщност не е…

Решението:

  1. Добавете във вашият Gemfile: gem ‘rack’, ’1.2.1′
  2. Стартирайте: bundle update
  3. Премахваме всички версии на Rack по-нови от 1.2.1: gem uninstall rack -v [Версията] и резултата е:
    [wasp]$ gem list |grep rackrack (1.2.1, 1.1.0, 1.0.1, 1.0.0)
  4. touch tmp/restart.txt
  5. Вече сме доволни :)

Търсене в български блогове.

Естествено продължение на www.rssfu.com, сайта www.blogbg.net е търсачка в блоговете, които се агрегират от rssfu. Сайта е реализиран с помоща на Ruby on Rails. Търсенето в публикациите е реализирано със Sphinx и плъгин за RoR,  thinking-sphinx.

Редакция 17.10.2009:

blogbg.net – няма да изпълнява ролята на търсачка в rssfu.com. Търсенето, ще стане част от rssfu. Скоро, ще има повече информация.

bgonrails

BGonRails се съживи :)

http://www.bgonrails.com

Rails 2.0 Textmate разпознаване на .html.erb

Textmate не разпознава .html.erb ?

Textmate – Menu – Bundles – Bundle Editor – Show Bundle Editor – отляво Ruby on Rails – почти накрая от изброените bundels – Rails HTML. Намеретя вдясно в текста и променете:

fileTypes = ( ‘rhtml’ );
на
fileTypes = ( ‘rhtml’, ‘erb’ );

Генериране на Google, Yahoo sitemap.xml в rails сайт

Динамично генериране на sitemap.xml в ruby on rails сайт

controller:

def sitemap
  @posts = Post.find :all
  render :layout => false
end

view:

xml.instruct!
xml.urlset "xmlns" => "http://www.sitemaps.org/schemas/sitemap/0.9" do
  xml.url do
    xml.loc         "http://www.YourSite.com/"
    xml.lastmod     w3c_date(Time.now)
    xml.changefreq  "always"
  end
  @posts.each do |post|
    xml.url do
      xml.loc         url_for(:only_path => false, :controller => 'home', :action => 'details', :id => post)
      xml.lastmod     w3c_date(post.created_at)
      xml.changefreq  "weekly"
      xml.priority    0.9
    end
  end
end

helper:

def w3c_date(date)
  date.utc.strftime("%Y-%m-%dT%H:%M:%S+00:00")
end

routes:

#Sitemap
map.connect "sitemap.xml", :controller => "home", :action => "sitemap"

Добавете Вашият sitemap в Google http://www.google.com/webmasters/sitemap

RoR плъгин за генериране на статистики за посещения

SiteAlizer – Полезен плъгин за генериране на статистики за посещения. Лесна интеграция с ruby on rails сайт/приложение.

Кода на плъгина може да изтеглите от тук: http://opensvn.csie.org/sitealizer/

Rails – Apache 2.0x – Proxy – Mongrel – Ubuntu

Ruby on Rails приложение/сайт – Apache сървър за статично съдържание и mongrel за обслужване на rails приложението/сайта. Заявките към mongrel се пренасочват през Apache Proxy.

Виртуален хост конфигурация:

<VirtualHost IP:80> ServerName app.server.com ServerAlias app.server.com DocumentRoot /www/rails/public ErrorLog /www/rails/log/server.log

<Directory /www/rails/public/> Options ExecCGI FollowSymLinks AllowOverride all Allow from all Order allow,deny </Directory> <Proxy http://IP:3000> Order deny,allow Deny from all Allow from all </Proxy> ProxyPass / http://IP:3000/ ProxyPassReverse / http://IP:3000 ProxyPreserveHost on ProxyPass /images ! ProxyPass /javascripts ! ProxyPass /stylesheets ! </VirtualHost>

 

Пускане на mongrel:

/usr/bin/ruby /usr/bin/mongrel_rails start -d -e production -p 3000 -l /www/rails/log/mongrel.log -P /www/rails/log/mongrel.3000.pid -c /www/rails

Mongrel Server – На сайта на mongrel може да намерите повече информация за конфигурирането му, пусканете на клъстер от mongrel сървъри и т.н.

Share Snippets

ShareSnippets

ShareSnippets – Сайта е място където всеки може да запази, организира и ако иска да сподели свойте отрязъци код. Кода на сайта е писан на ruby и използва ruby on rails.