IT-Expert
  IT-Expert / Веблог / Ключевые слова / Rails
Авторизация
Логин:
Пароль:


 
Поиск по записям:

Ключевые слова:
Записей в блоге
 за 2008 год
 за 2007 год
 за 2006 год
 за 2005 год
RSS лента Лента новостей IT-Expert 
Лента подкастов IT-Expert IT-Expert audiopodcasts
входит в:
Ruby

Rails

Проблемы при переносе старых rails сайтов

14:30, 31 августа 2008 ( )

Вот ведь как бывает, когда обновляешь систему с rails сайтами.

Все сайты крутились под Freebsd 4.11 и как-то незаметно пришло время обновиться. Поставилась FreeBSD 7, установились свежие рельсы, и наступила пора переноса сайтов. Ох.

Некоторые сайты крутились еще на fcgi, и использовались rails 1.1.6.

А не перевести ли на Rails 2? Сказано-сделано. Для начала завести все как было на новом хосте.

Не буду утомлять, пришлось сделать правки в mysql.rb как написано здесь 

http://railized.com/2008/2/17/wrong-argument-error-when-running-rails-1-1-6-with-ruby-1-8-6

и в boot.rb заменить require_gem на gem в двух местах. И, в принципе, все поднимается.

Ах да, если юзалась LoginSystem от Rails 1, то в Rails 2 об этом следует забыть и часть кода попросту переписать.

PS. Git рулит!

 

Слегка доработанный capistrano recipe для получения дампа рабочей базы локально

13:04, 28 июля 2008 ( )

Довольно часто данные изменяются на продакшн-сервере, и обычно хочется экспериментировать над свежей копией данных в своем rails приложении.

Тем, кто пользуется для разворачивания приложений capistrano есть хорошая новость: сделать такую вещь весьма несложно.

Итак, у нас в production FreeBSD 7.0, для разработки пользуемся рабочей станцией с ubuntu 8.04.

Рецепт capistrano слегка модифицированный взят отсюда: http://programmingishard.com/code/495

добавляем в config/deploy.rrb

 desc "Load production data into development database"
task :load_production_data, :roles => :db, :only => { :primary => true } do
  require 'yaml'
 
  database = YAML::load_file('config/database.yml')
 
  filename = "dump.#{Time.now.strftime '%Y-%m-%d_%H:%M:%S'}.sql"
  on_rollback { delete "/tmp/#{filename}" }
 
  run "mysqldump -u #{database['production']['username']} --password=#{database['production']['password']} #{database['production']['database']} > /tmp/#{filename}" do |channel, stream, data|
    puts data
  end
  get "/tmp/#{filename}", filename
#  exec "/tmp/#{filename}"
  exec "mysql -u #{database['development']['username']} --password=#{database['development']['password']} #{database['development']['database']} < #{filename}; rm -f #{filename}"
end

после чего пользуемся:

cap load_production_data

и вуаля, свежая копия базы с production у нас в development!

 

+1 в сайты на ROR

11:09, 3 ферваля 2008 ( )

Тихо и незаметно вызрел еще один сайт на Ruby on Rails. 

Сей сайт находится по адресу http://nxt.com.ua

Rails 2.0, пользует плагины acts_as_tree, in_place_editing, restful_authentication, tiny_mce 

 

 

Relative urls в tiny_mce

17:04, 21 января 2008 ( )

От читателя поступил вопрос, как сделать так, что бы в браузере изображений url были бы не вида ../../images, а /images ?

Очень просто, достаточно добавить в вызов tiny_mce  в контроллере такие параметры:

:relative_urls=>false,
:convert_urls=>true
и ваши url будут вида /images  и т.д.
хотя, при правильной разработке, этого не требуется. 

Rails: ActiveSearch plugin

11:32, 27 декабря 2007 ( )

Плагин ActiveSearch просто чудо какое-то, большое человеческое спасибо julik.nl за его разработку.

Штука сия облегчает и без того легкую жизнь ;-) rails-девелопера при разработке простейшего поиска по записям базы.

Идея сего плагина такова: используя разнообразные инексаторы исходя из планируемого объема данных вырабатываем оптимальный подход к поиску по записям базы.

Например, мой сайт содержит весьма небольшой объем данных, и, как рекомендует Julik, при объеме до 500 записей целесообразно использовать простейший индексатор ActiveSearch::LikeIndexer.

Для того чтобы поиск заработал необходимо:

1. Установить плагин:

cd project

ruby script/plugin install http://julik.textdriven.com/svn/tools/rails_plugins/simple_search/ 

2. Добавить поле searchable к таблицам, по которым вы собираетесь искать. Целессобразно сделать это через миграцию:

  def self.up
    add_column("products","searchable", :text)
    add_column("categories","searchable", :text)
   
 end 

def self.down   
    remove_column("products","searchable")
    remove_column("categories","searchable")
  end

3. В моделях Product и Category добавляем указание к индексированию:

   indexes_columns :title, :short_description, :long_description

4.  запустить начальное индексирование:

консоль rais:

ruby script/console

в консоли

Products.indexers[0].rebuild!

Category.indexers[0].rebuild!

Все, теперь мы можем достаточно быстро искать по записям:


@found_categories = Category.indexers[0].query(@query)
@found_products = Product.indexers[0].query(@query)

 Можно искать и по Category.find_using_term("query"), как в документации указано, но, видимо такое использование предполагает использование сразу нескольких индексаторов.

 

Таким образом плагин может быть использован с:

1. индексом в поле searchable в каждой модели, по которой будет производиться поиск.

2. индексом в отдельной таблице

3. индексом через плагин ferret 

способы индексации расположены в порядке увеличения количества данных для поиска.

Удобно, Julik, u made my day. 

 

Аяксовое дерево с drag-n-drop на Ruby on Rails

10:58, 17 декабря 2007 ( )
А вот, собственно, и ссылка на субж. http://ajaxonrails.wordpress.com/category/ajax-tree/
 

Railscast

10:06, 4 декабря 2007 ( )
Да, кто для себя еще не открыл сайт со скринкастами о руби он рейлс - велкам ту http://railscasts.com/  

RSpec, BDD и story

22:53, 16 ноября 2007 ( )

Новое слово в Behaviour Driven Development и отличном инструменте разработчика Rails приложений. Новый инструмент называется Rspec story. Появился он пока только в HEAD версии rspec, поэтому устанавливать rspec нужно из svn trunk.

Что такое истории 

Примеры rspec story 

Скринкаст о story, который обязательно стоит посмотреть. Примечателен приемением autotest для rspec 

 

Ознакомиться с REST, CRUD, Model, Resource

12:05, 3 августа 2007 ( )

Можно почерпнуть понимание этих терминов из заметки http://novemberain.com/2007/8/2/rest-crud-resource-model

Настоятельно рекомендую прочесть перевод статьи REST  как альтернатива SOAP, где простым и понятным языком объяснены различия этих двух технологий.

 

Перевод книги по Ruby "Учись программировать"

14:09, 18 июля 2007 ( )

Не могу не порадоваться появлению русскоязычного перевода в исполнении Михаила Шохирева "Learn to program".

http://www.shokhirev.com/mikhail/ruby/ltp/title.html

 
страницы:
 1 
2 3 4 5 6 ... >|
© Nexus 2005-2007 Rambler Top100 О сервере