Сообщения

Сообщения за август, 2011

Определяем в Rails название города по IP посетителя сайта

Изображение
remote_ip = request.remote_ip result = Net::HTTP.get(URI.parse("http://ipgeobase.ru:7020/geo?ip=#{remote_ip}") ic = Iconv.new('UTF-8', 'WINDOWS-1251') conv_res = ic.iconv(result + ' ')[0..-2] Вот, собственно, и все. Название города в conv_res, вместе с названием региона и прочей информацией, которую выдает по IP замечательный ресурс ipgeobase.ru )

Загрузка файлов по FTP из Rails

Изображение
$ rails g controller Ftp upload ../app/controllers/ftp_controller.rb require 'net/ftp' class FtpController < ApplicationController   def upload     ftp = Net::FTP.new('сервер')     ftp.passive = true     ftp.login(user = "пользователь", passwd="пароль")     ftp.putbinaryfile("путь к файлу", File.basename("название файла"))     ftp.quit()   end end Все просто. Устанавливаем соединение с ftp-сервером и передаем путь к файлу. Но если нам неизвестен путь к файлу? Тогда все становится несколько сложнее. Для примера - добавим форму, где пользователь может выбрать файл для загрузки... ../app/views/ftp/_ftp.html.erb <% form_tag '/upload', :method => :post, :multipart => true do %> <label>Выберите файл</label><%= file_field 'upload', 'filedata' %> <%= submit_tag "Поехали!" %> <% end %> Редактируем контроллер - def upload   file = params[:upload]

Rails 3 + Apache + Passenger на Ubuntu 11.04

Изображение
Разворачиваем по-быстрому Rails 3 + Apache + Passenger на Ubuntu 11.04 GIT $ sudo apt-get install git-core RVM $ sudo apt-get install curl $ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm) Редактируем ~/.bashrc - добавляем строку -  [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"   Перезапускаем терминал и выполняем -   $ type rvm | head -1  Если результат " rvm is a function " - установка прошла успешно. RUBY $ rvm pkg install zlib $ rvm install 1.8.7 --with-zlib-dir=$rvm_path/usr $ rvm --create use 1.8.7@myapp Проверяем - $ ruby -v RAILS $ gem install rails --version 3.0.7 Проверяем - $ rails -v APACHE $ sudo apt-get install apache2 PASSENGER $ gem install passenger $ passenger-install-apache2-module Тут придется повозиться. Установщик модуля проверит наличие необходимых компонентов и выдаст инструкции по установке недостающих. Выполняем эти инструкции. Все должно установиться без проблем, за искл