Ruby submit_tag按钮没有做任何事情

时间:2015-05-28 17:02:40

标签: ruby forms ruby-on-rails-3 submit

我想在form_tag视图中创建一个index,以接受传递给我id方法的populateOne。视图已正确更新,表单中的number_field_tagsubmit_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

可能是什么问题?非常感谢所有帮助!感谢!!!

3 个答案:

答案 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>