2015-12-14 54 views
0

這條線在我的用戶索引視圖:simple_form_for用定製控制器動作

<%= simple_form_for current_user, :url => user_change_client_path, 
            :method => :patch, 
            :id => current_user.id do |f| %> 

生成以下錯誤:

No route matches {:action=>"change_client", :controller=>"users"} missing required keys: [:user_id] 

我在我的控制器限定的change_client動作。在我的routes.rb我:

resources :users, only: [:index] do 
    patch 'change_client' 
    patch 'approve' 
end 

耙路線顯示:

user_change_client PATCH /users/:user_id/change_client(.:format) users#change_client 
user_approve PATCH /users/:user_id/approve(.:format)    users#approve 

我在做什麼錯誤是造成這個錯誤嗎?

回答

1

你的路線如下:

user_change_client PATCH /users/:user_id/change_client(.:format) 

需要一個user_id參數。當你調用這個幫手,您的當前用戶傳遞給它,像這樣:

user_change_client_path(current_user) 
+0

所以我將如何納入代碼simple_form_for行嗎?我嘗試了一些變體,並且一直得到一個語法錯誤 –

+0

是否執行'<%= simple_form_for current_user,:url => user_change_client_path(current_user),:method =>:patch do | f | %>'不工作?該錯誤消息專門針對url助手方法。確保沒有其他地方你不小心打電話給它。 – sicks

+0

啊剛回來說我不小心刪了「do」,現在沒有語法錯誤,謝謝!現在正在測試以確保一切正常 –