2017-10-19 10 views
0

L'utilisateur authentifié devrait être en mesure d'ajouter l'adresse du portefeuille via formulaire à son tableau de bord. Dans mes itinérairespost demande dans tableau de bord portée ne fonctionne pas

scope '/dashboard', module: :dashboard do 
    get '/', to: 'dashboard#index', as: '/dashboard' 
    post '/eth_address', to: 'dashboard#eth_address' 
end 

Ma forme

<%= form_for eth_address_path do |f| %> 
      <%= f.label :eth_address %> 
      <%= f.text_field :eth_address %> 
      <%= f.submit "Save" %> 
     <% end %> 

dans les vues/tableau de bord/tableau de bord/index.html.erb

Et mon simple, contrôleur

Dashboard::DashboardController 

dans

controllers/dashboard/dashboard_controller.rb 

avec la méthode

def eth_address 
    eth_addr = params[:eth_address] 
    EthereumWallet.create(user_id: current_user.id, 
         address: eth_addr) 
end 

routes Rails de tableau de bord

dashboard GET /dashboard(.:format) dashboard/dashboard#index 
eth_address POST /dashboard/eth_address(.:format) dashboard/dashboard#eth_address   

et après soumets que je vois ceci:

No route matches [POST] "/dashboard" 

Je ne sais pas pourquoi il me demande une requête POST de/tableau de bord.

Merci

+0

Montrez vos itinéraires. rake routes – krishnar

+0

a ajouté des routes à la question – zOs0

+0

form_for: eth_address_path – krishnar

Répondre

0

Utiliser un alias pour eth_address

post '/eth_address', to: 'dashboard#eth_address', as: :eth_address 
+0

le problème existe toujours. – zOs0

0

La solution est de changer

form_for 

sur les nouvelles

form_with 

et nouvelle forme

<%= form_with url: :eth_address_path do |f| %> 
      <%= f.label :eth_address %> 
      <%= f.text_field :eth_address %> 
      <%= f.submit "Save" %> 
     <% end %> 

fonctionne assez agréable