2016-05-03 10 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') 

それは私がapp_configurations_pathにform_tagを変更すると、それは動作しますが、しかし「Noルートマッチ[PUT]」

というエラーを与えています。しかし、それは私が望むページには行きません。 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

Noルートマッチ[PUT]

問題は、あなたのform_tagではありません。あなたがrake routesを実行すると、あなたはエラーを得た理由です、これはedit_work_flows_pathだけGETを受け入れることができることを意味し、以下の

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_pathwork_flows_pathに変更する必要があります。以下のコードは動作するはずです。

= form_tag work_flows_path, :method=> 'put' do |f| 
関連する問題