Sem dúvida uma das mensagens mais irritantes que já tive o desprazer de encontrar nas andanças pelo Rails, a infame “User expected, got User” tende a aparecer, quando se utilizam plugins como o acts_as_commentable ou o acts_as_taggable, que definem Models dentro do diretório vendor/plugins.
A solução, como apontado pelo blog localhost:3000 blog (belo nome para um blog, diga-se de passagem ;)), é simples (apesar de meio “xunxo”): basta mover os models do plugin para o diretório apps/models de sua aplicação. A razão por trás do problema é que as libs (e o conteúdo do diretório vendor) não são carregadas a cada request, quando utilizando o modo “development”, diferentemente de todo o conteúdo do /app . Teoricamente, definir models dentro de plugins é uma má pratica, e deve ser evitado. Vale notar que o problema não acontece em modo production, onde os models não são recarregados o tempo todo.
Existe ainda uma maneira menos intrusiva de adicionar os plugins ao ‘reloadable path’, fazendo com que eles sejam recarregados junto da aplicação, conforme explicado neste link:
Categories
Me
Blogroll
Posted on July 7, 2007 at 2:30 pm
User expected, got User?
About
… I won’t be laughing at the lies when I’m gone And I can’t question how or when or why when I’m gone Can’t live proud enough to die when I’m gone So I guess I’ll have to do it when I’m here.
Recent Posts
- Very complicated feature…
- Don’t say anything if you’ve got nothing to say…
- del.icio.us is now delicious.com!
- My take on Cuil.com
- Avoiding duplicated posting in Rails
- say ‘there will be cake’
- Are we all becoming stooooopid?
- And here we are again, in 1999
- Web 2.0 users unite
- Globalize versus PDF-Writer, round one!
- Sometimes it’s hard to tell what’s real…
- Breaking news: the new MacBook Pro is afraid of heights!
- I just got pwn3d!
- Rails 1-2-3 (on Leopard)
- JavaME development on OS X: things to remember




















Leave a Reply