Posts Tagueados ‘rails’
Lumine 1.0, mudanças chegarão!
Eu comecei meu desenvolvimento profissional com PHP, e não faz muito tempo não, cerca de 6 meses. E com o PHP, eu comecei utilizado alguns frameworks, CodeIgniter, Lumine, Xajax, e dentre deles, um me chamou muito a atenção, o Lumine.
Test-driven development on Rails
Comecei um projeto pessoal, que já vi um muito bom rodando, Spesa, feito pelo Nando Vieira (sempre queria saber quem tinha criado o spesa, e por acaso descobri) e outro no rails-br bem interessante, em AJAX.
Após isso, tambem resolvi fazer o meu gerenciador financeiro! Assim como o Nando Vieira, irei colocar todas as regras de negocio realmente no negocio, evitando deixar tudo em Stored Procedures.
Nesse projeto, resolvi usar utilizar esta tecnica, e segui um tutorial rapído do Nando Vieira.
Depois de implementar 12 testes, tive problemas com dois, e achei uma coisa estranha, fiz passar, mas eu acho que tem alguma coisa errado, e não é no codigo implementado.
O método MD5.hexdigest() retorna uma hash MD5, e para o teste, faço a comparação da String que estou criado pro objeto user com a mesma string passando direto pelo método.
assert_equal(Digest::MD5.hexdigest("caironoleto"), user.password)
Só que a MD5 experada é diferente da MD5 que é passada, mesmo sendo os mesmos métodos, e mesmo sendo a mesma String.
Para resolver, antes de salvar o objeto, atribui o valor a uma nova variavel, assim criando a MD5 correta.
def test_of_password_in_new_user
user = create(:password => "caironoleto")
expected = user.password
user.save
assert_equal(Digest::MD5.hexdigest(expected), user.password)
end
Se algum railer ver, por favor, deixa comentario e explica o que está acontecendo.
Até a proxima!
UPDATE:
Realmente tem uma coisa estranha! E a pior das coisas, ela está entre o computador e a cadeira! (HoiahoiehAOIEHaO).
Simplesmente o código estava errado, nem métodos, ou nada disso, e sim o que estava fazendo.
Simplesmente por que quando utilizo o método create, ele realmente cria, aplicando assim a validação que passei pelo modelo e já salvando o objeto no banco de dados. E depois, eu mandava ele “salvar” repetindo a mesma coisa. Só que fazendo a MD5 da MD5 que já estava lá, gerando erro quando tentava comparar a MD5 direta pelo método Digest::MD5.hexadigest(“caironoleto”).
O que eu tava fazendo aí em cima dava certo, por que ele está armazendo em expected a MD5 que foi criada.
Agora sim respiro aliviado!
Até a proxima!
Ajuda ae por favor!
Olá pessoas, gostaria de saber como faço um Menu dinamico sendo alterado conforme o controlador no Ruby On Rails. Tentei buscar o nome do controlador na visão de layout, mas não deu muito certo, quem tiver mais experiencia e ler, por favor, post um comentario!!
Abraços e até a proxima!
