Ruby on Rails RSS feed for this section

Хостинг на 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. Вече сме доволни :)

Ruby: Най-добрите практики

Ruby: Най-добрите практики

Ruby Best Practices”  - Книгата е свободна за сваляне

Генериране на 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