我有_form.html.haml的代码:
= form_tag edit_work_flows_path, :method=> 'put' do |f|
-@all_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 :(得分: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|