MongoMapper, Rails3 Edge: Método indefinido `to_key 'em formulário
-
20-09-2019 - |
Pergunta
Quando estou tentando colocar os exemplos básicos de invenção executados com as versões Git atuais de Rails, Mongomapper e Devise, tenho o seguinte erro aparecendo:
undefined method `to_key' for #<Admin:0x23dee04>
Aqui está minha fonte real:
4: = form_for @admin, :url => admins_path do |f|
5: - field_set_tag 'Update my email' do
6: %p= f.text_field :email
7: %p= error_message_on @admin, :email
@admin é o usuário atualmente conectado ( @admin = current_admin) O mesmo erro ocorre ao tentar usar @admin = admin.first no controlador
Não tenho certeza se esse é um problema de Mongomapper, também pode estar relacionado a Rails3 ... obrigado por qualquer indicação ...
O mesmo acontece se estou usando o equivalente ERB, veja
<%= form_for @admin, :url => { :action => "create" } do |fr| %>
<%= fr.text_field :sign_in_count %>
<% end %>
Aqui está a saída de erro completo: http://pastie.org/871850
Solução
Eu enviei um patch para MongoMapper aqui:
http://github.com/fredwu/mongomapper/commit/6e5e531312ef98c30e33286a1f80dd000468ed07
Outras dicas
Ok, aqui está uma correção:
1 Corrija no modelo
def to_key
self.keys.to_a
end
2 Corrija na vista
<%= form_for :admin, @admin, :url => { :action => "create" } do |f| %>
<%= f.text_field :sign_in_count %>
<% end %>
Ambos funcionarão. Ainda assim, não está claro para mim se isso é um problema de trilhos ou mangumia, mas para qualquer outra pessoa que se deparar com isso, aqui está uma solução alternativa.