我的应用程序的特定控制器的路由是(我手动创建):
scope :path => '/labor', :controller => :labor do
get '/' => :index, :as => 'labor'
post 'start/:work_hours' => :start, :as => 'start'
post 'stop' => :stop, :as => 'stop'
end
我正在创建一个form_tag,但是我在传递已发布的值时遇到了问题。我的表格目前是:
<%= form_tag start_path do %>
<%= select_tag :work_hours, options_for_select([ "1", "2", "3", "4", "5", "6", "7", "8" ], "1") %>
<%= submit_tag "#{t 'labor.start_work'}" %>
<% end %>
我希望这可以工作,但不幸的是,它没有,我不明白为什么。我实际上收到路由错误没有路由匹配{:controller =&gt;“labor”,:action =&gt;“start”}
为什么会发生这种情况以及如何解决这个问题,以便:从工作表中正确发布:work_hours?
答案 0 :(得分:0)
你真的可以尝试
<%= form_for :start_labor do %>
<%= select_tag :work_hours, options_for_select([ "1", "2", "3", "4", "5", "6", "7", "8" ], "1") %>
<%= submit_tag "#{t 'labor.start_work'}" %>
<% end %>
然后使用params[:start_labor][:work_hours]
更新控制器中的数据。对我来说这很好用