【发布时间】:2013-11-19 19:27:41
【问题描述】:
我需要制作一个将两个隐藏字段发送到控制器的表单。表单不绑定到任何特定对象,我只需要获取控制器的输入。这是我的视图代码:
<%= form_tag(controller: "projects", action: "change_state_from_posting_to_actual_job") do |f| %>
<div><%= f.hidden_field_tag :relationship_id, value: relationship.id %></div>
<div><%= f.hidden_field_tag :project_id, value: project.id %></div>
<%= f.submit "Apply", class: "btn btn-large btn-primary" %>
<% end %>
我收到错误消息:
No route matches {:action=>"change_state_from_posting_to_actual_job", :controller=>"projects"}
但我肯定有一个控制器和具有这些名称的操作(控制器实际上是 projects_controller,但我已经尝试过。我也尝试过 ProjectsController)。
这是我的路线:
get 'change_state', to: 'projects#change_state_from_posting_to_actual_job', as: :change_state
如何让表单进入控制器?
【问题讨论】:
-
您的
config/routes.rb中是否有映射到该操作的路线? -
好的,我现在就发布路线
-
那你为什么不在
form_tag中使用change_state_path? -
而且,顺便说一句,您实际上并不需要表单生成器对象
f,因为您没有与表单关联的实际对象。所以我宁愿删除它。 -
我试过了,但是我得到了错误:'没有路由匹配 [POST] "/projects/show_applicants"'。
标签: ruby-on-rails forms model-view-controller ruby-on-rails-4 form-helpers