I18n + locale na rota + form_for = problema!

2 views
Skip to first unread message

Mauricio Pena

unread,
Dec 29, 2009, 6:38:10 PM12/29/09
to rail...@googlegroups.com
Ola' pessoal.

Novamente, sou iniciante no RoR mas... estou tentando fazer o certo da 1a. vez, mesmo que inicialmente seja mais complicado, para nao ter que ficar reescrevendo a aplicacao muitas e muitas vezes.

Seguindo o guia "A API de Internacionalização do Rails (I18n)" (http://guias.rubyonrails.pro.br/i18n.html), estava tudo indo muito bem, ate' que cheguei a seguinte parte do item 1.5:

"IMPORTANTE: No momento essa solução tem uma grande desvantagem. Devido à
implementação de _default_url_options_, você tem que passar explicitamente a opção :id, da seguinte maneira: link_to 'Show', book_url(:id => book) e não pode depender de mágicas do Rails como link_to 'Show', book. (...)"

(Vi que tem plugins para facilitar isso, mas no momento resolvi nao me aventurar com eles e tentar entender pelo menos o que esta' acontecendo.)

OK, apos alterar o meu "config/routes.rb" para "map.resources :users, :path_prefix =>
'/:locale'", fiz as alteracoes nos helpers "link_to" e funcionaram sem problemas, mas empaquei no "form_form".

O que fiz foi o seguinte:

Era:
<% form_for(@user) do |f| %>

Ficou:
<% form_for :user, @user, :url => user_url(:id => @user), :html => { :method => :put } do |f| %>


Mas com isso eu obtenho o seguinte erro ao tentar salvar o registro:
"Routing Error

user_url failed to generate from {:action=>"show", :locale=>#<User id: 10,
name: "aaaaaaaaa2", hashed_password: "", active: false, created_at:
"2009-12-29 21:18:56", updated_at: "2009-12-29 23:26:04">,
:controller=>"users"}, expected: {:action=>"show", :controller=>"users"},
diff: {:locale=>#<User id: 10, name: "aaaaaaaaa2", hashed_password: "",
active: false, created_at: "2009-12-29 21:18:56", updated_at: "2009-12-29
23:26:04">}
"

Obs.: o registro e' alterado corretamente, o problema ocorre quando deveria ser exibida a pagina de listagem, apos a alteracao do registro.

Algum palpite?


[]s
Mauricio

Reply all
Reply to author
Forward
0 new messages