Adicionar Foreign key com ActiveRecord Migration
Publicado; 10/06/2011 Filed under: ruby | Tags: activerecord, belogns_to, migration, rails, references, ruby Comentários desativadosSempre que vou fazer um model passando os campos (sim, vez enquando faço assim, e?) sempre fico na dúvida da cláusula para gerar a foreign key, se é no singular ou plural que se escreve, enfim… Para eu não esquecer mais (assim espero) o uso é “referenceS“, mas olhando na documentação do Rails, me deparei com um alias para esta mesma opção, que no caso fica mais fácil ainda lembrar “belongs_to“, isso mesmo, então…
rails g model post title:string body:text category_id:integer
rails g model post title:string body:text category:references
rails g model post title:string body:text category:belongs_to
É tudo farinha do mesmo saco. :)
That’s all folks!!!
Carregar fixtures com Rails 3 e RSpec 2
Publicado; 07/04/2011 Filed under: ruby | Tags: fixtures, rails, rails3, rake, rspec, rspec2, ruby Comentários desativadosSim, ainda temos fixtures e no RSpec 2, não temos mais a rake para carregar as fixtures (spec:db:fixtures:load), mas podemos fazer com a tarefa db:fixtures:load, apenas carregando a variável de ambiente FIXTURES_PATH com o caminho relativo ao diretório de fixtures do rspec.
FIXTURES_PATH="spec/fixtures" rake db:fixtures:load
Desabilite acesso a URLs reais em seus testes com Fakeweb
Publicado; 19/02/2011 Filed under: ruby | Tags: fakeweb, rails, rspec, ruby 4 Comments »Em um dos projetos que estou trabalhando atualmente, a suite de testes começou a demorar a executar, papo de 5 minutos. Então, habilitando a opção de profile do RSpec para identificar quais testes estavam lentos, identifiquei que eram os testes referentes a importação de feeds. Então, o que descobri? Que na verdade, os testes estavam fazendo requisições reais dos feeds. Então, primeiro passo é, desabilitar acesso a URLs reais e nada como o bom e velho Fakeweb para ajudar nessa parte.
Dois passos simples
No Gemfile:
gem "fakeweb", :group => :test
E no spec/spec_helper.rb:
FakeWeb.allow_net_connect = false
Agora toda a suite roda em 30 segundos. Claro, próximo passo é arrumar os testes que estão quebrando e nesse caso. MOCK NELES!





