вторник, 14 мая 2013 г.

CarrierWave и русские символы

Чтобы carrierwave корректно обрабатывал имена файлов с русскими символами в файл аплоадера необходимо добавить следующие строки:
CarrierWave::SanitizedFile.sanitize_regexp = /[^a-zA-Zа-яА-ЯёЁ0-9\.\_\-\+\s\:]/

суббота, 11 мая 2013 г.

Генерация случайного пароля

Первый способ - генерирует семизначный пароль из букв разного регистра и цифр.

def pass_generate(len=7) 
chars = ('a'..'z').to_a + ('A'..'Z').to_a + ('1'..'9').to_a - ['o', 'O', 'i', 'I'] return Array.new(len) { chars[rand(chars.size)] }.join 
end 

Второй способ - только буквы нижнего регистра

Array.new(6) { (rand(122-97) + 97).chr }.join

 

среда, 3 апреля 2013 г.

Шпаргалка по typus + devise

  1. gem "devise"
    gem "typus"
  2. $ rails generate devise:install
  3. $ rails generate devise DeviseUser
  4. $ rake db:migrate
  5. $ rails generate typus
  6.  config/initializers/typus.rb
  7.  There are some changes you need to do to your DeviseUser.
  8.  restart

 1. Добавляем необходимые гемы в Gemfile:

 gem "devise"
 gem "typus"

 2. Генерируем devise

 $ rails generate devise:install

 3. Генерируем модель для devise

 $ rails generate devise DeviseUser

 4. Применяем миграции

 $ rake db:migrate

 5. Генерируем typus

 $ rails generate typus

 6. Редактируем config/initializers/typus.rb

 Typus.setup do |config|
  config.authentication = :devise
end

7. Вносим изменения в модель DeviseUser

require 'typus/orm/active_record/user/instance_methods'
require 'typus/orm/active_record/user/instance_methods_more'


class DeviseUser < ActiveRecord::Base
  # Включаем  модули для Devise, другие доступные:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable и :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Устанавливаем доступные аттрибуты для модели
  attr_accessible :email, :password, :password_confirmation, :remember_me
  attr_accessible :email, :password, :password_confirmation, :remember_me, :as => :admin

  include Typus::Orm::ActiveRecord::User::InstanceMethods
  include Typus::Orm::ActiveRecord::User::InstanceMethodsMore

end

8. Перезапускаем приложение

Шпаргалка по devise

  1. gem 'devise'
  2. $ bundle install
  3. $ rails generate devise:install
  4. $ rails generate devise MODEL
  5. $ rake db:migrate
  6. restart
1. Инсталляция devise

Добавляем в Gemfile:

gem 'devise'

2. Затем:

$ bundle install

3. Генерируем devise:

$ rails generate devise:install

4. Далее создаем модель devise:

$ rails generate devise MODEL, где MODEL - название модели( может быть users или admin).

5. Применяем созданные миграции:

$ rake db:migrate

6. После этого необходимо перезапустить приложение.

вторник, 26 марта 2013 г.

Установка среды запуска JavaScript: Nodejs

После ввода команды

$ rake db:migrate


rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.

На указанной странице нам предлагают установить гем ExecJS, который сам будет выбирать лучшую среду для запуска JavaScript.

Проблему можно решить установив одну из сред, указанных на странице. Мы будем устанавливать Nodejs. Инструкции по установке на разные системы можно найти на странице https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager.
У меня Debian 6.0.7 и пишут, что есть готовый пакет в репозитории в ветке unstable. Но рекомендуют самим скомпилировать программу. Все просто (делаем из под учетной записи администратора):
 
$ apt-get install python g++ make
$ mkdir ~/nodejs && cd $_
$ wget -N http://nodejs.org/dist/node-latest.tar.gz
$ tar xzvf node-latest.tar.gz && cd `ls -rd node-v*`
$ ./configure
make install

понедельник, 25 марта 2013 г.

Использование rvm: gemset


В Ruby on Rails возможно использование наборов гемов между которыми можно переключаться.

Исходная позиция:
-debian 6.0.7 squeeze
-rvm 1.18.21 stable

Создать gemset легко:

$rvm gemset create rails32

Чтобы просмотреть список созданных гемов:

$ rvm gemset list

Переключение на существующий gemset:

$ rvm use @rails32


Официальная документация по использованию gemset.

Установка ruby 1.9.3 на Debian через rvm

Для того чтобы  скомпилировать ruby 1.9.3 установим через rvm библиотеку openssl.
 
$ rvm pkg install openssl
   
$ rvm install 1.9.3 --with-openssl-dir=$rvm_path/usr

Здесь $rvm_path путь установки библиотеки openssl.

$ rails -v

Если будет выведена версия rails, значит все сделано правильно.
А если возникнут ошибки, смотрите официальный сайт rvm.