Articoli marcati con tag ‘rails’

Problemi con relative_url_root e fckeditor

Venerdì, 27 Febbraio 2009

In questi giorni sto sviluppando una piattaforma di gestione newsletters (con report ecc ecc) e di gestione sms (invio multiplo tramite SOAP).

Ho voluto utilizzare easy fckeditor come editor wysiwyg ma con rails > 2.1 ci sono alcuni problemi.

Restituisce un errore in riferimento a relative_url_root:

undefined method `relative_url_root’ for ActionController::Base:Class

Dopo qualche indagine ho scoperto che non esiste più

ActionController::Base.relative_url_root

E’ stato definito in

ActionController::AbstractRequest

Quindi ricapitolando sarà sufficiente sostituire

ActionController::Base.relative_url_root

con

ActionController::AbstractRequest.relative_url_root

sia in fckeditor_controller.rb che in fckeditor.rb

Se avete dubbi non esitate a chiedere come al solito

Ne approfitto per segnalare un altro problema sempre con easy fckeditor:
All’interno del metodo upload_directory_path si fa riferimento ad una costante UPLOADED che non esiste. Il nome corretto infatti è UPLOAD_FOLDER.

Buon lavoro!
Filippo

Rails 2.1.1 e RubyGems 1.2: un aggiornamento sofferto

Sabato, 6 Settembre 2008

Di ritorno dalle vacanze ci ritroviamo un bel aggiornamento (un bugfix a dir la verità) di Rails. La 2.1.1. Vi rimando all’articolo del papà di Rails,  David Heinemeier Hansson che spiega le novità.

Basterebbe dare il seguente comando:

$> gem install rails –version 2.1.1

Ho fissato il terminale per alcuni minuti e l’unica scritta che è apparsa è questa:

Bulk updating Gem source index for: http://gems.rubyforge.org

L’installazione non procede, si è fermata lì!.
Decido allora di fare una piccola ricerca su google e capisco velocemente che il problema è di rubygems ed in particolare scopro che è stata rilasciata una nuova versione (la 1.2) ed è assolutamente necessario aggiornare dal codice sorgente per poter continuare ad installare e updatare le gemme:

$> wget http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz
$> tar -zxvf rubygems-1.2.0.tgz
$> cd rubygems-1.2.0
$> sudo ruby setub.rb

Ok, l’installazione è partita, attendiamo qualche istante il completamento dell’installazione.
A questo punto è sufficiente ridare il comando:

$> gem install rails –version 2.1.1

Ciao!

Acts_as_ferret e will_paginate

Giovedì, 26 Giugno 2008

Utilizzo da un pò questi due preziosissimi plugin per la ricerca su grandi quantità di dati.

Ferret è il porting in ruby di Lucene e sostanzialmente è un motore di ricerca fulltext mentre will_paginate è un plugin per la paginazione (di prodotti nel caso di un negozio online per esempio).

Oggi volevo paginare i risultati di una ricerca fatta con ferret…ed ho avuto vari problemi.

In pratica mi funzionava solamente la prima pagina, mentre dalla seconda in poi non dava più risultati, dopo qualche minuto di analisi (grazie anche a firebug) mi sono accorot che la stringa che rappresentava la query di ricerca veniva “persa” nel passaggio alla pagina successiva.

Ho quindi escogitato questo stratagemma poco elegante ma per lo meno funzionante (ho molta fretta oggi :) )

if !params[:query].nil?
@query = params[:query].downcase
session[:query] = @query
else
@query = session[:query]
end

Questo codice non fa altro che salvare in sessione la stringa di ricerca se questa non è stata ritrasmessa.

Perdonatemi la “pressapochezza” di questo post ma sono veramente di super fretta oggi.

Se avete problemi contattatemi

Filippo

Sqlite GUI per Macosx (e non solo…)

Venerdì, 20 Giugno 2008

Da quando sono passato a Rails 2 ho iniziato ad utilizzare il fantastico sqlite3 in ambiente di sviluppo. E’ ottimale perché mi permette di sviluppare le mie applicazioni da computer differenti (e con altri sviluppatori grazie a SVN) senza la rottura di scatole di dover ogni volta passare il file sql, creare tabelle, creare database e server mysql da avviare. Sqlite3 è il db di default in Leopard e questo rende tutto più semplice.

Una cosa di cui sono fermamente convinto è che a volte è necessario “visualizzare” le cose per capirle fino in fondo. Vi è mai capitato di non comprendere cosa stesse succedendo al vostro database? Vorreste dare una sbirciatina rapida al contenuto delle tabelle? Fino a ieri avevo il mio amico CocoaMySql ad aiutarmi, ora invece con sqlite3 non sapevo come fare.

Ho fatto delle ricerche su google ma non ho trovato nessun programma interessante e/o free che mi aiutasse in questo scopo…alla fine il colpo di genio. E se esistesse una estensione per Firefox? Detto fatto :)

SQLite Manager extension for Firefox

Meravigliosa estensione, semplice e rapida e soprattutto sempre a portata di mano.

Beh, buon lavoro!

Filippo

Quando i fantastici quattro ‘girano in casa’

Venerdì, 30 Maggio 2008

Ovvero come compilare ed installare Ruby, Rails Imagemagick Rmagick nella propria /home/ senza chiedere aiuto a ’sudo’: questa procedura ha dato ottimi risultati su DreamHost, ma dovrebbe funzionare egregiamente su ogni host.

Il problema nasce dal fatto che nessuna azienda di hosting renderá mai disponibile la versione piú recente dei pacchetti installati sul server per non incorrere in troppi bugs e cosí capita che proprio quando fai un deploy dell’applicazione Rails che in localhost funziona tranquillamente, in produzione ha un comportamento differente e solitamente sono errori fatali!

1) PREPARARE L’AMBIENTE

editare il file ~/.bash_profile come segue

umask 002
PS1=’[\h:$PWD]$ ‘
alias restart=”touch tmp/restart.txt” *
EDITOR=”/usr/bin/nano”
. .bashrc

*opzionale: é utile su DreamHost per riavviare le applicazioni Rails che girano in produzione con Passenger

editare il file ~/.bashrc

export TZ=ECT # visto che ci siamo impostiamo European Central Time
export LD_LIBRARY_PATH=$HOME/.packages/lib
export PATH=$HOME/.packages/bin:$HOME/.gems/bin:${PATH}
export GEM_HOME=$HOME/.gems
export GEM_PATH=$GEM_HOME:/usr/lib/ruby/gems/1.8
export LDFLAGS=-L/$HOME/.packages/lib
export LD_RUN_PATH=$HOME/.packages/lib
export CPPFLAGS=-I/$HOME/.packages/include

chiediamo alla shell di ricaricare i file di configurazione e verifichiamo che tutto sia stato caricato correttamente:

$. ~/.bash_profile
$ env

env vi mostrerá un elenco di variabili d’ambiente tra le quali anche quelle appena aggiunte: se non é cosí scommetto 5€ che non avete scritto i file di configurazione nella vostra home: rimediare con cd ~ e ricominciare!

2) CREARE LE DIRECTORY OPERATIVE

$ mkdir .gems && mkdir .src && mkdir .packages

3) SCI! Scaricare, Compilare, Installare

== READLINE ==

$ cd ~/.src
$ wget ftp://ftp.cwru.edu/pub/bash/readline-5.2.tar.gz
$ tar zxvf readline-5.2.tar.gz
$ cd readline-5.2
$ ./configure –prefix=$HOME/.packages
$ make
$ make install
$ rm readline-5.2.tar.gz && rm -Rf readline-5.2
$ cd ~

== RUBY ==

$ cd ~/.src
$ wget ftp://ftp.ruby-lang.org:21/pub/ruby/ruby-1.8.6-p114.tar.gz
$ tar zxvf ruby-1.8.6-p114.tar.gz
$ cd ruby-1.8.6-p114
$./configure –prefix=$HOME/.packages –with-readline-dir=$HOME/.packages
$ make
$ make install
$ rm ruby-1.8.6-p114.tar.gz && rm -Rf ruby-1.8.6-p114
$ cd ~

controlliamo?

$ which ruby
/home/yourhome/.packages/bin/ruby
$ ruby -v
ruby 1.8.6 (2008-03-03 patchlevel 114) [i686-linux]

== RubyGems ==

$ cd ~/.src
$ wget http://rubyforge.org/frs/download.php/20989/rubygems-0.9.4.tgz
$ tar zxvf rubygems-0.9.4.tgz
$ cd rubygems-0.9.4
$ ruby setup.rb config –prefix=$HOME/.packages
$ ruby setup.rb setup
$ ruby setup.rb install –prefix=$HOME/.packages/
$ rm rubygems-0.9.4.tgz && rm -Rf rubygems-0.9.4
$ cd ~

controlliamo?

$ which gem
/home/yourhome/.packages/bin/gem
$gem list -l

*** LOCAL GEMS ***

actionmailer (1.3.6, 1.2.5)
actionpack (1.13.6, 1.12.5)
actionwebservice (1.2.6, 1.1.6)
activerecord (1.15.6, 1.14.4)
activesupport (1.4.4, 1.3.1)
login_generator (1.2.2)
rails (1.2.6, 1.1.6)
rake (0.8.1, 0.7.1)
rmagick (2.3.0, 1.14.1)
rubygems-update (1.1.1)
sources (0.0.1)

ora é possibile..

$gem update –system

oppure

$ gem install rails –include-dependencies

== ImageMagick ==

$ cd ~/.src
$ wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
$ tar xvfz ImageMagick.tar.gz
$ cd ImageMagick-6.4.1/
$./configure –prefix=$HOME/.packages -without-perl –with-gslib –with-gs-font-dir=/usr/share/fonts/type1/gsfonts/ && make && make install
(–with-gslib –with-gs-font-dir=/usr/share/fonts/type1/gsfonts/ é richiesto solo da DreamHost!)
$ rm ImageMagick.tar.gz && rm -Rf ImageMagick-6.4.1
$ cd ~

come sempre possiamo controllare che il comando convert di IM sia presente e sia proprio quello appena installato..

$ which convert
/home/yourhome/.packages/bin/convert

l’ultima versione di IM é davvero potente! provate questo, su un’immagine ‘image.jpg’ ;)

$ convert -font Times -background ‘#0008′ -fill white -gravity center -size 200×40 -pointsize 25 label:”Sono Stupido!” +size image.jpg +swap -gravity south -composite label_image.jpg

== RMagick ==

$ cd ~/.src
$ wget ‘http://rubyforge.org/frs/download.php/23510/rmagick-1.15.8.gem’
$ gem install -l rmagick-1.15.8.gem — –build-opts –prefix=$HOME/.packages/
$ rm rmagick-1.15.8.gem

A questo punto dimenticare di inserire questa direttiva nel file config/environment.rb delle vostre applicazioni Rails sarebbe davvero un grave errore..

ENV['GEM_PATH'] = ‘/home/yourname/.gems’

Buon Divertimento!