• Почему не запускается программа?

    @Heafy
    У Вашей системы не та разрядность.
    Вам необходимо найти это же приожение для 64-bit windows, или запускать приложение с 32(86)-bit windows.
    Подробнее о разрядности можете почитать тут
    Ответ написан
    Комментировать
  • Как правильно расшарить схему миграции и атрибутов моделей в Rails?

    @vsuhachev
    Есть 2 варианта: наследование и concerns (ака mixin'ы). Основные отличия в смысловой нагрузке, которую вы вкладываете в отношения этих классов.

    Если Б это подкласс А, то логичнее использовать наследование. Пример - 'Автомобиль' и 'ВАЗ 2109'

    Если А и Б разнородные сущности, имеющие некий общий функционал то логичнее использовать concerns. Пример - 'Автомобиль' и 'Лифт' могут иметь общий функционал связанный с погрузкой пассажиров.
    Ответ написан
    2 комментария
  • Какой есть хороший мануал по настройке сервера для 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 комментарий