2015-10-21 77 views
2

這可能沒有道理,但我試圖學習更難的東西和進展,似乎我錯過了地址的ID,但似乎無法找到解決方案。form_for路由錯誤與範圍:模塊嵌套路由

我在form_for中包含了url,因爲當我刪除它時,應用程序會中斷。但似乎我預定義的網址比編輯休息。

<%= form_for([@address.user, @address], :url => user_addresses_path) do |f| %> 

錯誤讀數:
無路由匹配[PATCH] 「/用戶/ 1 /地址」

當我刪除:URL =>
未定義的方法`user_client_address_path」

路由。 rb

Rails.application.routes.draw do 

    # Security Devise Setup 
    devise_for :admins 
    devise_for :users 

    # Main Pages 
    root 'website/page#index' 

    # Client Sections 
    resources :users do 
     scope module: "client" do 
      root :to => 'dashboard#index' 
      resources :addresses 
     end 
    end 

    namespace :admin do 
     root :to => 'panel#index' 
    end 

end 

耙路線部分輸出(讓我知道是否需要更多)

user_addresses  GET /users/:user_id/addresses(.:format)   client/addresses#index 
        POST /users/:user_id/addresses(.:format)   client/addresses#create 
new_user_address GET /users/:user_id/addresses/new(.:format)  client/addresses#new 
edit_user_address GET /users/:user_id/addresses/:id/edit(.:format) client/addresses#edit 
user_address  GET /users/:user_id/addresses/:id(.:format)  client/addresses#show 
        PATCH /users/:user_id/addresses/:id(.:format)  client/addresses#update 
        PUT /users/:user_id/addresses/:id(.:format)  client/addresses#update 
        DELETE /users/:user_id/addresses/:id(.:format)  client/addresses#destroy 
+0

什麼是'耙routes'的輸出?出於某種原因,您的表單正在使用PATCH而不是POST進行提交。你想通過AJAX提交嗎? – nbermudezs

+0

您是否通過AJAX提交表單?還是它有一個提交按鈕,你點擊? – nbermudezs

+0

有趣。它有兩個條目。 PATCH/PUT。我有一個可能導致問題的管理模板。可能是某種JavaScript或AJAX的某處。 – bradpotts

回答

1

如果您使用AJAX提交表單,請嘗試向其添加method: 'POST'

如果您正常提交表單,請嘗試將method: :post添加到form_for散列中。

它最終應該是這樣的:

<%= form_for([@address.user, @address], url: user_addresses_path, method: :post) do |f| %>