Mostrando postagens com marcador rails. Mostrar todas as postagens
Mostrando postagens com marcador rails. Mostrar todas as postagens

sexta-feira, 3 de setembro de 2010

Rack warnings com Rails 3 + cucumber

Problema:
rack-1.2.1/lib/rack/utils.rb:16: warning: regexp match /.../n against to UTF-8 string
Solução: http://crimpycode.brennonbortz.com/?p=42

segunda-feira, 28 de setembro de 2009

Rails loves Firebird

Para fazer o Rails falar com o Firebird, levando-se em conta que o Firebird 2.1 e o Rails estão instalados.

$ sudo apt-get install firebird2.1-dev
$ sudo gem install fb
$ sudo gem install fb_adapter


O nome do adapter é 'fb'. Para criar registros, é necessário ter um generator com o nome #{table_name}_seq Não testei com migrations, então não sei se um create_table também criaria o generator.

Tentei usar o recurso de alias do Firebird e não funcionou aqui. Só com o caminho completo até o banco do Firebird.

Tanto o fb (acesso a Firebird com Ruby) quanto fb_adapter (adaptador de Firebird para Rails) estão disponíveis em http://github.com/rowland.


OBS: Caso esteja tendo problemas com o uso desta gem, leia os comentários.

sexta-feira, 11 de setembro de 2009

Apache + Passenger retornando 404 para qualquer coisa

Ao rodar o Apache + Passenger agora há pouco, estava obtendo sempre um erro 404. Olhando nos logs de erro do apache:
# tail /var/log/apache2/error.log
[Fri Sep 11 11:24:50 2009] [error] [client 172.20.6.9] File does not exist: /var/www/solicitacoes
[Fri Sep 11 11:26:16 2009] [error] [client 172.20.6.9] File does not exist: /var/www/solicitacoes


Muito estranho, já que meu virtual host apontava para uma pasta completamente diferente. Vamos ver então como o apache está vendo os virtual hosts:
# apache2ctl -S
apache2: Could not reliably determine the server's fully qualified domain name, using 172.20.6.250 for ServerName
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server 172.20.6.250 (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost 172.20.6.250 (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost 172.20.6.250 (/etc/apache2/apache2.conf:287)
Syntax OK


Há dois virtual hosts na porta 80, e um deles, aquele da pasta sites-enabled, não é o que eu configurei. Solução? rm no arquivo /etc/apache2/sites-enabled/000-default e tudo ok.

segunda-feira, 7 de setembro de 2009

Erro ao rodar RSpec ou Cucumber em aplicação Rails

Ao rodar specs aqui eu vinha obtendo o erro:
$ rake spec
/var/lib/gems/1.8/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:105:in `const_missing': uninitialized constant Test::Unit::TestResult::TestResultFailureSupport (NameError)


Algumas soluções encontradas na rede recomendavam adicionar um require 'test/unit' no environment.rb, tudo muito estranho. Atualizei todas as gems e nada. Até que fuçando a configuração aqui, comecei a desinstalar algumas gems suspeitando de conflito. Então, quando desinstalei o mocha, tudo passou a funcionar. É importante notar que o projeto foi recém-criado e não tinha nenhuma referência ao mocha.

De qualquer modo, isto não trouxe qualquer problema adicional, já que o RSpec oferece uma API de mocking.

[edit] No arquivo spec/spec_helper.rb gerado pelo script/generate rspec há uma configuração comentada onde é possível estabelecer que o framework de mocking a ser usado seja o mocha.

sexta-feira, 5 de junho de 2009

Configurar múltiplas aplicações Rails no mesmo servidor com mod_passenger (a.k.a. mod_rails)

No apache2.conf (aqui /etc/apache2/apache2.conf):

ServerName ip_do_servidor
DocumentRoot /home/rodrigo/desenvolvimento/temp # uma pasta que não é de app Rails
RailsBaseURI /myapp # sub-url da sua aplicação


Dentro da pasta apontada como DocumentRoot, é necessário criar um link simbólico para a pasta public da aplicação Rails referenciada.

Além disto, você deve incluir na seção de configuração do config/environment.rb:
config.action_controller.relative_url_root = "/myapp"

O problema com esta configuração no environment.rb é que ela serve apenas para o ambiente de produção. Porém, é possível criar uma solução genérica (extraída daqui) que resolve o problema sem a necessidade de mexer no environment.rb:
# automatic relative_url_root fix
# for Phusion Passenger 2.2.2 and Rails 2.3.2 (>= 2.2.2)
# by pts@fazekas.hu at Mon May 4 20:48:38 CEST 2009
# from http://ptspts.blogspot.com/2009/05/how-to-fix-railsbaseuri-sub-uri-with.html
fail unless ActionController::Request # check loaded
module ActionController
class Request
def initialize(env)
@env = env # Rack::Request#initialize does only this
path = request_uri.to_s[/\A[^\?]*/]
sn = @env['SCRIPT_NAME']
if (RAILS_ENV == 'production' and
(sn.empty? or sn.starts_with?('/')) and
path == sn + @env['PATH_INFO'])
Base.relative_url_root = sn
end
end
end
end


O único problema que ainda resta é que as imagens definidas no CSS - e se você é um desenvolvedor profissional, ou seja, usa padrões web, vai ter imagens definidas no CSS - é que arquivos CSS, até onde sei, são estáticos e os links serão diferentes nos ambientes development/test e production.

Uma solução que pensei agora rapidamente é criar um script que processe os CSS's e altere os links e que seja incluído nos recipes do Capistrano. Mas vou procurar um pouco mais pra ver se há uma solução dentro do Rails.

segunda-feira, 11 de maio de 2009

Instalação de Ruby, Rails e acesso ao PostGreSQL

$ sudo apt-get install ruby1.8 rubygems rubygems1.8 ruby1.8-dev libpq-dev make rake libopenssl-ruby1.8
$ sudo gem install rails
$ sudo gem install mongrel


No Ubuntu 8.10
$ sudo gem install postgres
No Ubuntu 9.04
$ sudo gem install ruby-pg

sexta-feira, 1 de maio de 2009

quarta-feira, 22 de abril de 2009

Atualização do rubygems no Ubuntu 8.10

$ sudo gem install rubygems-update
$ cd /var/lib/gems/1.8/bin
$ sudo ./update_rubygems


Caso haja problemas com gems, é importante verificar por elas em:
~/.gem

ruby -e "puts $:"