Ruby submit_tag按钮不做任何事情



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

有什么问题吗?非常感谢所有的帮助!谢谢! !

您的form_tag使用put方法将数据发布到url。你的路线有get方法。修复put:

put 'affinities/populateOne/:id' => 'affinities#populateOne', :as => 'populateOne_affinity'

视图:<%= form_tag('/affinities/populateOne/:id', method: :put) %>

路线:get 'affinities/populateOne/:id' => 'affinities#populateOne', :as => 'populateOne_affinity'

你的表单提交方法和路由不匹配。你的形式是放,做你想做的事,但路线是试图得到不存在的东西。将路由的get更改为put,它应该可以正常工作。

在我的index视图中,我忘记为form_tag添加do ... end:

<%= form_tag('/affinities/populateOne/:id', method: :put) do %>
  <%= number_field_tag(1) %>
  <%= submit_tag 'Populate One' %>
<% end %><br>

相关内容

  • 没有找到相关文章