我想在form_tag
视图中创建一个index
,以接受传递给我id
方法的populateOne
。视图已正确更新,表单中的number_field_tag
和submit_tag
都在那里,但是当我按下服务器上的按钮时,没有任何反应!
以下是我的观点:
<%= form_tag('/affinities/populateOne/:id', method: :put) %>
<%= number_field_tag(1) %>
<%= submit_tag 'Populate One' %><br>
以下是我的路线:编辑:
put 'affinities/populateOne/:id' => 'affinities#populateOne', :as => 'populateOne_affinity'
我的populateOne
方法很长,所以这里是相关部分:
def populateOne
userA = User.find(params[:id])
...
end
可能是什么问题?非常感谢所有帮助!感谢!!!
答案 0 :(得分:1)
您的form_tag
正在使用put
方法将数据发布到网址。并且您的路线有get
方法。使用put
:
put 'affinities/populateOne/:id' => 'affinities#populateOne', :as => 'populateOne_affinity'
答案 1 :(得分:0)
查看:
<%= form_tag('/affinities/populateOne/:id', method: :put) %>
路线:
get 'affinities/populateOne/:id' => 'affinities#populateOne', :as => 'populateOne_affinity'
您的表单提交方法与您的路线不符。你的表格正在推动,并按照你的意愿行事,但路线正试图得到一些不存在的东西。将路线get
更改为put
,它应按预期工作。
答案 2 :(得分:0)
在我的index
视图中,我忘了为do ... end
添加form_tag
:
<%= form_tag('/affinities/populateOne/:id', method: :put) do %>
<%= number_field_tag(1) %>
<%= submit_tag 'Populate One' %>
<% end %><br>