Ответы пользователя по тегу Ruby on Rails
  • Какой есть хороший мануал по настройке сервера для rails-приложения?

    @TM_ID
    Я настраиваю сервер так:

    Первым делом создаю non-root, sudoer пользователя с которого все устанавливаю и деплою(через capistrano, например).

    # non-root user
    useradd -d /home/deployer -m deployer
    # password for deployer
    passwd deployer
    # deployer a sudoer
    visudo
    deployer ALL=(ALL) ALL

    Логинимся как deployer

    Устанавливаю RVM.
    # RVM
    \curl -sSL https://get.rvm.io | bash -s stable
    # RVM requirements
    rvm requirements

    Через RVM ставлю Ruby.
    # Ruby
    rvm install 2.1.2
    rvm use 2.1.2 --default

    Rails без доков(--no-document)
    # Rails
    gem install rails 4.1.0 --no-document

    NodeJS для js runtime
    # ExecJS NodeJS Javascript runtime
    sudo apt-get install nodejs

    MySQL/PostgreSQL

    Apache
    # Install Apache packs
    sudo apt-get install apache2 curl git build-essential zlibc zlib1g-dev zlib1g libcurl4-openssl-dev libssl-dev libopenssl-ruby apache2-prefork-dev libapr1-dev libaprutil1-dev libreadline6 libreadline6-dev


    Passenger
    # Passenger
    gem install passenger
    # Apache module
    passenger-install-apache2-module

    Настройка Apache
    # etc/apache2/mods-available/passenger.load
    LoadModule passenger_module /home/deployer/.rvm/gems/ruby-2.1.2/gems/passenger-4.0.37/buildout/apache2/mod_passenger.so


    # etc/apache2/mods-available/passenger.conf
    <IfModule mod_passenger.c>
         PassengerRoot /home/deployer/.rvm/gems/ruby-2.1.2/gems/passenger-4.0.37
         PassengerDefaultRuby /home/deployer/.rvm/gems/ruby-2.1.2/wrappers/ruby
    </IfModule>


    Активируем модуль пассажира для апач
    sudo a2enmod passenger

    Хост для апач
    # etc/apache2/sites-available/sitename
    <VirtualHost *:80>
      ServerName sitename.com
      DocumentRoot /home/deployer/ror_apps/sitename/current/public # путь для capistrano. либо свой
      <Directory /home/deployer/ror_apps/sitename/current/public>
         AllowOverride all
         Options -MultiViews
      </Directory>
    </VirtualHost>


    Активируем хост
    sudo a2ensite sitename

    Рестарт конфига Apache
    sudo service apache2 reload

    Далее настраиваем ssh ключи для деплоя и гита.
    Ставим и настраиваем capistrano и получаем удовольствие от деплоя.
    bundle exec cap deploy

    Есть вопросы - спрашивайте.
    Ответ написан
    1 комментарий
  • Как связать две таблицы в Rails?

    @TM_ID
    Модель Project
    class Project < ActiveRecord::Base
      has_many :tasks
    end

    Модель Task
    class Task < ActiveRecord::Base
      belongs_to :projects
    end
    Ответ написан
    Комментировать