mongomapper, bordo rails3:metodo non definito "to_key" su form_for
-
20-09-2019 - |
Domanda
quando provo a far funzionare gli esempi di base di devise con le attuali versioni git di rails, mongomapper e devise, viene visualizzato il seguente errore:
undefined method `to_key' for #<Admin:0x23dee04>
ecco la mia vera fonte:
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 è attualmente loggato in utente ( @admin = corrente
Non sono del tutto sicuro se questo è un problema di Mongomapper, potrebbe anche essere rails3 correlato...grazie per eventuali indicazioni...
lo stesso accade se utilizzo l'equivalente erb, vedi
<%= form_for @admin, :url => { :action => "create" } do |fr| %>
<%= fr.text_field :sign_in_count %>
<% end %>
ecco l'output completo dell'errore: http://pastie.org/871850
Soluzione
Ho presentato una patch per MongoMapper qui:
http://github.com/fredwu/mongomapper/commit/6e5e531312ef98c30e33286a1f80dd000468ed07
Altri suggerimenti
ok, ecco una soluzione:
1 correzione nel modello
def to_key
self.keys.to_a
end
2 fissare nella vista
<%= form_for :admin, @admin, :url => { :action => "create" } do |f| %>
<%= f.text_field :sign_in_count %>
<% end %>
funzioneranno entrambi.ancora non mi è chiaro se si tratta di un problema di rails o mongomapper, ma per chiunque altro si trovi in questa situazione, ecco una soluzione alternativa.