2016-05-03 56 views
2

我有我的_form.html.haml驗證碼:沒有路線匹配[PUT]。如何正確路由?

= form_tag edit_work_flows_path, :method=> 'put' do |f| 
    [email protected]_configurations.each do |config| 
    -if config.configuration_key == 'DUPLICATE_CLAIM_WI_MANAGER' 
     =hidden_field_tag "config_ids[]", config.id 
     .fieldset.field-group.field-group-inline.pull-left 
     .field.field-text 
      %label= t('workflow.duplicate_claim_manager') 

這是給錯誤是「沒有路由匹配[PUT]」

然而,當我改變的form_tag到app_configurations_path它的工作原理。但它不會進入我想要的頁面。我希望它進入edit_work_flows_path頁面。這是我的路線:

scope '/settings' do 
     resource :app_configurations, only: [:edit, :update] do 
     collection { get 'cover_letter_template' } 
     end 
     resource :work_flows, only: [:edit, :update] 
    end 

任何想法如何解決這個問題?

+0

你的路由是什麼?在你的控制檯運行:rake routes grep | work_flows –

+1

什麼是'rake routes'的輸出 –

回答

3

沒有路由匹配[PUT]

問題是與你的form_tag。當您運行rake routes,你將會看到類似下面

Prefix Verb URI Pattern     Controller#Action 
edit_work_flows GET /work_flows/edit(.:format) work_flows#edit 
    work_flows PATCH /work_flows(.:format)  work_flows#update 
       PUT /work_flows(.:format)  work_flows#update 

這意味着edit_work_flows_path只能接受GET,這就是爲什麼你得到了錯誤。您應該將edit_work_flows_path更改爲work_flows_path。下面的代碼應該可以工作。

= form_tag work_flows_path, :method=> 'put' do |f|